[英]Declaring type parameter twice in Collections objects in Java
我一直在學習Java(使用Java 6),並且注意到創建了Collections
對象(例如ArrayList
)時,必須同時在引用類型和對象類型中聲明type參數。 僅在引用類型中聲明type參數會更容易嗎? 還是存在類型參數可能不同的情況?
例如,( String
)下面的type參數必須聲明兩次。
List<String> aList = new ArrayList<String>();
查看https://code.google.com/p/guava-libraries/wiki/CollectionUtilitiesExplained 靜態構造函數 :
在JDK 7之前,構造新的通用集合需要令人不愉快的代碼重復:
List<TypeThatsTooLongForItsOwnGood> list = new ArrayList<TypeThatsTooLongForItsOwnGood>();
我認為我們都可以同意這是令人不愉快的。 Guava提供了使用泛型來推斷右側類型的靜態方法:
List<TypeThatsTooLongForItsOwnGood> list = Lists.newArrayList();
Map<KeyType, LongishValueType> map = Maps.newLinkedHashMap();
可以肯定的是,JDK 7中的菱形運算符使此工作不再那么麻煩:
List<TypeThatsTooLongForItsOwnGood> list = new ArrayList<>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.