2014-01-17 65 views
4

我剛開始閱讀有關泛型類。我想知道參數類型的名稱是否會影響傳入的內容。因此,代碼1和2的工作方式完全相同嗎?他們都是通用類嗎?謝謝!參數類型中的名稱是否確定類是通用的?

// Code 1 
public class Bar<AnyType> { 
    private AnyType a; 
} 

// Code 2 
public class Bar<Lalaland> { 
    private Lalaland a; 
} 
+7

試試吧。但是,不,它不會改變任何東西。你的兩個班級是相同的。請注意,您通常應該爲泛型類型變量使用單個字母。您的類型變量可能會遮蓋其他類型的名稱。 –

回答

8

它的工作原理完全相同的方式,就如同選擇不同的變量名的工作方式相同。

int anyInt = 5; 

int lalaland = 5; 

但始終要注意所選擇比現有的類名稱不同的泛型類型參數的名稱。雖然它是合法的,但當類型參數被誤認爲類名時,會導致大量混淆。

// Don't do this. 
public class Bar<Integer> // confusing! 

the Java tutorial on the subject

按照慣例,類型參數名稱是單一的,大寫字母。這與你已經知道的變量命名約定形成鮮明對比,並且有很好的理由:如果沒有這個約定,很難區分類型變量和普通類或接口名稱之間的區別。

最常用的類型參數的名稱是:

  • ë - 元素(由Java集合框架中廣泛使用)
  • 的K - 重點
  • N - 數
  • 筆 -
  • 類型
  • V - 值
  • S,U,V等 - 第2,3,4類
相關問題