Подтвердить что ты не робот

Как переопределить метод при создании объекта в Котлине?

В 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()
    }
} 
4b9b3361

Ответ 1

Если вы хотите создать анонимный внутренний класс, вы должны использовать object.

var rule = object : ActivityTestRule<MainActivity>(MainActivity::class.java) {
    override fun beforeActivityLaunched() {
        super.beforeActivityLaunched()
    }
}

См. Также " Выражения и объявления объектов".