[英]Can I use Class in generics?
如果我知道數組列表運行時的數據類型,我可以在泛型中使用它嗎?
例如,我可以在下面的數組列表聲明期間使用Class(比如String.class
)。
List objList = new ArrayList<DestinationClassToBeReplaced>();
List<String> objList = new ArrayList<>();
是為了做到這一點, List
javadoc清楚地說明了這一點。
Type Parameters: E - the type of elements in this list
你可以像這樣寫:
List<DestinationClassToBeReplaced> objList = new ArrayList<>();
<>
運算符稱為Diamond運算符。
上面的代碼使用JDK 7的Diamond Operator
推斷泛型類的實例化參數類型
可以使用三種方式來聲明通用列表
方法1:使用泛型,即兩側
List<Integer> list = new ArrayList<Integer>();
方法2:在左側使用通用,在右側使用菱形操作符
List<Integer> list = new ArrayList<>();
方法3:僅在左側使用通用
List<Integer> list = new ArrayList();
在上述三種方法中,第二種方法在java 7中引入。
如果要使用泛型,則必須在左側指定類型才能使用泛型。 請注意,在編譯期間檢查泛型后,編譯器會拋棄泛型的類型限制。
僅在右側添加通用將無助於您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.