2017-03-08 225 views
-4

什麼是java中的AnyType。我應該什麼時候使用它。 例如TestRpn<AnyType extends Comparable<AnyType>>在這段代碼是什麼AnyType,什麼樣的可以有數據(即,如Integer,布爾)的什麼是java泛型中的`AnyType`

+1

它是字面上的任何類型;) –

+1

你在問這個問題之前做過什麼研究?我相當確定你的搜索引擎可以找到比你在這裏得到的答案更快的答案。 –

回答

4

沒有名爲AnyType預定義類型。我猜你已經遇到了一個名字很差的類型參數變量。類型變量的命名約定是suggested to be single uppercase letters,以避免這種類型的混淆。

在你的情況下,TestRpn<AnyType extends Comparable<AnyType>>應改爲TestRpn<E extends Comparable<E>>,這反過來意味着你可以用任何類型替換實現Comparable的E,因爲它是自己的類型。示例:java.lang.String實現了Comparable<String>,所以TestRpn<String>是上述基本類型的有效參數化。

+0

他們_應該是一個單一的字母:http://stackoverflow.com/a/2900933/2545439 –

+1

@PieterDeBie大部分時間,是的。有一些有效的反例,例如通過處理值的函數將一個地圖轉換爲另一個地圖的方法。這種方法將具有類型參數K,V1和V2。 –

+1

確實。說實話,我不喜歡這個慣例。有時候,我有更簡單的短名稱。 –

1

AnyType實際上在java7 +中使用。可以說它的用法與E或T或者其他的一樣。顧名思義它可以是任何類型的通用數據。 例如,當我實現了在Java中我一般的鏈表,我用

private Node<AnyType> head; 

這裏所說的ANYTYPE代表泛型類型節點。

相關問題