有时候,我们需要创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类。 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的方式处理匿名内部类会报错