Как переопределить метод при создании объекта в Котлине?
В Java, чтобы переопределить метод при создании экземпляра нового объекта, мы можем сделать это
public ActivityTestRule<MainActivity> rule = new ActivityTestRule<MainActivity>(
MainActivity.class) {
@Override
protected void beforeActivityLaunched() {
// implement code
super.beforeActivityLaunched();
}
};
Как это сделать в Котлине? Я пробовал этот код, но он не смог скомпилировать.
@Rule @JvmField
var rule = ActivityTestRule<MainActivity>(MainActivity::class.java) {
override fun beforeActivityLaunched() {
super.beforeActivityLaunched()
}
}
Ответы
Ответ 1
Если вы хотите создать анонимный внутренний класс, вы должны использовать object
.
var rule = object : ActivityTestRule<MainActivity>(MainActivity::class.java) {
override fun beforeActivityLaunched() {
super.beforeActivityLaunched()
}
}
См. Также " Выражения и объявления объектов".