2016-03-25 282 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; 
    ... 
}