У меня есть следующие kotlin классы:
abstract class Base<I> {
open fun test(value: I) {
Log.i("Base", value.toString());
}
}
abstract class SubClass : Base<Long>() {
abstract override fun test(value: Long);
}
И класс java, который наследует от них:
public class SubSubClass extends SubClass {
@Override
public void test(final long value) {
Log.i("SubSubClass", value + "");
}
}
Теперь следующий код вызывает странное поведение
t.test(123)
(t as Base<Long>).test(123)
>I/SubSubClass: 123
>I/Base: 123
пока я ожидаю
>I/SubSubClass: 123
>I/SubSubClass: 123
Что здесь происходит? И как это можно исправить? (Примечание: я не могу реально изменить класс java, потому что он генерируется комнатой)