Вот мой код
[Котлин]
internal abstract class Parent<out T, in V> constructor(
tList: List<T>,
vList: List<V>
) {
abstract fun get(): List<T>
abstract fun set(v: List<V>)
}
[Java] - наследует класс kotlin Parent.
final class Child extends Parent<Number, String> {
public Child(
@NotNull List<? extends Number> tList,
@NotNull List<? extends String> vList) {
super(tList, vList);
}
@NotNull @Override
public List<Number> get() {
return null;
}
@Override
public void set(@NotNull List<? extends String> v) {}
}
Родительский класс имеет Обобщения, называемые T (out), V (in),
так я думаю ..
конструктор класса Child должен быть ..
public Child(
@NotNull List<? extends Number> tList,
@NotNull List<? super String> vList) {
super(tList, vList);
}
т.е. второй аргумент vList должен быть
List<? super String>
потому что V Generic родителя "в", но это ..
List<? extends String>
кто-нибудь может это объяснить? помоги мне!
[Изменено] ...
public Child(
@NotNull List<Number> tList,
@NotNull List<String> vList) {
super(tList, vList);
}
Это возможно .. код в моем вопросе просто сгенерированный код из IDE ..