이번에는 Maybe에 대해서 알아보도록 하겠습니다!
Maybe는 Single과 Completable의 중간 특성을 가지는 Trait입니다.
아래처럼 비교해보면 Maybe가 Single, Completable이 가지고 있는 .success()
, .completed
, .error()
모든 이벤트를 가지고 있는 모습을 볼 수 있죠.
그렇다는 것은 Maybe는 .success()
를 통해서 요소를 방출시킬 수도 있고, .completed
를 통해서 완료 됐음 여부만 전달시킬 수도 있고, .error()
을 통해서 에러 처리까지 할 수 있는 것이죠!
이러한 Maybe의 특성덕에 이벤트에서 요소를 방출 시킬 수도 있지만 꼭 요소를 방출 시킬 필요가 없는 경우에 유용하게 사용될 수 있습니다.
Maybe도 여타 Trait과 생성하는 법은 비슷합니다.
오른쪽과 같이 .success()
, .error()
, .completed
모두 있는 것을 확인하실 수 있네요!
다만 Maybe는 Single의 .success()
특성도 지녔다보니 제네릭 타입으로 꼭 방출할 요소의 타입을 지정해 줘야한다는 점!