public class Abc<T>{
public Abc(Class<T> type) {
}
}
我調用的時候
Abc<HashSet<String>> Abc = new Abc<HashSet<String>>(HashSet<String>.class);
通不過,報錯
Abc<HashSet<String>> Abc = new Abc<HashSet<String>>(HashSet.class);
還是報錯
Abc<HashSet> Abc = new Abc<HashSet>(HashSet.class);
這樣終于可以了,但是沒有指定 HashSet 容器內部的類型,IDE 報警,而且我也覺得這好像不是正統的 java 寫法,正統的 java 寫法都應該指定容器里的類型的。
我查了不少資料,因為類型擦除的原因,看起來最后一種才是對的,但是為啥最后一種那么別扭呢。沒給容器指定元素類型這個報警問題是只能這樣,還是有更好的辦法?
這樣的泛型定義到底如何調用才是對的呢?
慕桂英3389331
2019-02-20 11:45:20