有时候,我们需要创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类。 Java 用匿名内部类处理这种情况。 Kotlin 用对象表达式和对象声明对这个概念稍微概括了下。
in JAVA:
DataBindingUtils.addCallBack(this, mActivityVM.goToSimple,
new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable observable, int i) {
goToBase();
}
});
in Kotlin:
DataBindingUtils.addCallBack(
this,
mainActivityVM?.goToSimple,
object : Observable.OnPropertyChangedCallback() {
override fun onPropertyChanged(p0: Observable?, p1: Int) {
}
})
使用object来处理,若使用java的方式处理匿名内部类会报错
本文对比了Java中使用匿名内部类与Kotlin中使用对象表达式的方法,展示了如何在Kotlin中替代Java的匿名内部类实现,并讨论了这种方式的优势。
1879

被折叠的 条评论
为什么被折叠?



