Итак, у меня получилось что-то вроде следующего:
public class Enclosing<T extends Comparable<T>> {
// non-relevant code snipped
public class Inner {
private T value;
public Inner(T t) {
value = t;
}
}
}
Все компилируется, и мир счастлив. Однако, когда я пытаюсь создать экземпляр Enclosing.Inner
следующим образом, я не могу:
new Enclosing<Integer>.Inner(5);
Возникает следующая ошибка:
Cannot allocate the member type
Enclosing
using a parameterized compound name; use its simple name and an enclosing instance of type.Inner Enclosing
.
Важно отметить, что я не могу сделать внутренний класс static
, потому что он содержит поле типа T
.
Как я могу это обойти?