Observable에서 발행된 마지막 항목을 발행한다. Last
연산자는 Observable이 최소한 한 개 이상의 항목을 발행하는 것이 보장될 때 사용하는 것이 좋다.
이 예제는 newJeansList에서 마지막 요소를 보여주는 예제입니다. 코드를 살펴보면 newJeansList라는 리스트를 Observable.fromIterable()
메서드를 사용하여 요소들을 하나씩 발행하는 Observable을 생성하여 반환합니다.
이제 MainActivity에서 호출을 하여 last( NewJeans(1,"민지",20))로 기본값을 주어 최소한 한 개 이상을 발행하는 것을 만족하게 해주면 리스트가 비어있을 때 NewJeans(1,"민지",20)가 발행됩니다. 아니면 .lastElement()
사용해 아무것도 발행이 안 되게 할 수 있습니다.
class MainActivity : AppCompatActivity() {
companion object {
const val TAG = "MainActivity"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
last()
.last( NewJeans(1,"민지",20)) // 기본값을 주는 방법
// .lastElement() // 기본값을 주지 않는 방법
.subscribe(
{
Log.d("last", "onNext : $it")
},
{
Log.d("last", "onError ${it}")
}
).let { _ -> }
}
}
fun last():Observable<NewJeans> {
return Observable.fromIterable(newJeansList)
}
val newJeansList= mutableListOf<NewJeans>(
NewJeans(1,"민지",20),
NewJeans(2,"하니",20),
NewJeans(3,"다니엘",19),
NewJeans(4,"해린",18),
NewJeans(5,"혜인",16),
)
data class NewJeans
(
val id: Long,
val name: String,
val age: Int
)