簡體   English   中英

參數類型中的名稱是否確定該類是否是通用的?

[英]Does the name in a parameter type determine if the class is generic?

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

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

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

它的工作方式完全相同,就像選擇不同的變量名稱一樣。

int anyInt = 5;

int lalaland = 5;

但是請務必小心選擇與現有類名不同的泛型類型參數名稱。 雖然它是合法的,但當類型參數被誤認為類名時,會導致很多混淆。

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

根據關於這個主題的Java教程

按照慣例,類型參數名稱是單個大寫字母。 這與您已經了解的變量命名約定形成鮮明對比,並且有充分的理由:如果沒有這種約定,就很難區分類型變量和普通類或接口名稱。

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

  • E - Element(Java Collections Framework廣泛使用)
  • K - 鑰匙
  • N - 數字
  • T型
  • V - 價值
  • S,U,V等 - 第2,第3,第4類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM