2016-03-25 244 views
0

的我怎么这样的事情在Java中的Java泛型类型泛型类型

class TreeNode<Item<K,V>> { 

} 

上面的代码不会编译。

+0

你能解释一下你正在尝试做什么吗?根据你正在尝试做什么,你所要求的可能被称为更高级的类型,Java不支持。但从目前的措辞来看很难说。 –

回答

8

您必须声明KV为通用参数,并且必须声明要绑定到Item<K, V>的类型参数的名称。假设Item是一个预定义的泛型类型,你可以做这样的事情,比如:

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

或许(和更容易),你并不需要一个单独的类型参数X,只是需要声明KV作为类型参数:

class TreeNode<K, V> { 
    private Item<K, V> mItem; 
    ... 
}