说句良心话,kotlin 比java复杂的一点就是函数方面的改写
java版本
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
LogUtil.e(s);
}
});
Kotlin版本
// 难点在于subscribe后面的类型,为啥不能上面这种写法会报错,它所处的环境跟create后面的一样,为
// 为啥会报错 TODO
// 得到一个规律
// 方法后是接口类型,替换成{} 如果实现类有参数,那么变成{ type-> xxx }
最后总结
Observable.create<String> { }.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { s -> LogUtil.e(s) }
但是有两个参数的,最好中规中矩的先写objet: xxx {},然后再通过lanmda转换
model!!.currentName.observe(this, Observer<String> { TODO("Not yet implemented") })