2016-03-25 2 views
0

Как я что-то подобное в JavaJava общий тип универсального типа

class TreeNode<Item<K,V>> { 

} 

Код выше не компилируется.

+0

Не могли бы вы объяснить, что вы пытаетесь сделать? В зависимости от того, что вы пытаетесь сделать, то, что вы запрашиваете, может быть известно как более высокосортные типы, которые Java не поддерживает. Но с вашей текущей формулировки трудно сказать. –

ответ

8

Вы должны объявить K и V, чтобы быть универсальными параметрами, и вы должны объявить имя параметра типа, которое вы хотите связать с Item<K, V>. Если предположить, что Item предопределенный универсальный тип, вы можете сделать что-то подобное, например:

class TreeNode<K, V, X extends Item<K, V>> { 
    ... 
} 

или, возможно (и более вероятно) вам не нужен отдельный параметр типа X и просто нужно объявить K и V как параметры типа:

class TreeNode<K, V> { 
    private Item<K, V> mItem; 
    ... 
} 
Смежные вопросы