Версия 1
public interface Outer<T>{
public interface Inner<T>{
T get();
void set(T t);
}
}
Хотя один и тот же синтаксис универсального типа, эти два типа полностью независимы.
Версия 2
public interface Outer<T>{
public interface Inner<V extends T>{
V get();
void set(V t);
}
}
Получена ошибка: «Невозможно сделать статическую ссылку на нестатический тип T»
Версия 3
public interface Outer<T>{
public interface Inner{
<T> T get();
<T> void set(T m);
}
}
Не уверен, чтоэто то, что я хочу, но, кажется, хорошо (без ошибок в затмении), поэтому я пытаюсь реализовать это:
public Test implements interface Outer.Inner {
//no problem in these two
<T> T get(){..};
<T> void set(T m){...};
//Errors come up here:
Map<String,T> map;
public Test(Map<String,T> map){
this.map=map
}
}
появляется ошибка: "T не может быть разрешена в тип" в обоих
- объявление
Map<String,T> map
- аргумент конструктора
public Test(Map<String,T> map){}
Итак, как я могу решить эту проблему?