- 問題1:賦值類型錯誤 Incompatible types.Found: 'java.util.List<java.lang.String>',required: 'java.util.List<java.lang.Object>'
List<Object> objectList1=new ArrayList<>();
List<String> stringList1=new ArrayList<>();
objectList1=stringList1;
//Incompatible types.Found: 'java.util.List<java.lang.String>',required: 'java.util.List<java.lang.Object>'
因為objectList1需要的是Object類型,但是卻給了一個String類型的stringList1
如果加入通配符?,改成下面代碼就可以了
List<? extends Object> objectList2=new ArrayList<>();
List<String> stringList2=new ArrayList<>();
objectList2=stringList2;
- 問題2:警告(不過沒有報錯):Unchecked call to 'add(E)' as a member of raw type 'java.util.List'
List list1=new LinkedList();//警告(因為沒有加泛型類型)
// List<String> list1=new LinkedList();
list1.add(1);
list1.add("a");
另外發現:如果不指定泛型,可以在List中保存多種類型的元素。因為默認為Object類型
- 問題3:警告:Unchecked assignment: 'java.util.ArrayList' to 'java.util.List<java.lang.String>'
List<String> rawList = new ArrayList();//警告(沒有加尖括號):
- 問題4:可以給Array加泛型嗎?不可以
Array<Integer>;//Type Array does not have type parameters