package GenericStudy;
import java.util.ArrayList;
import java.util.List;
public class Demo2 {
public static void main(String[] args) {
Demo2 d1 = new Demo2();
//例1
List arr = new ArrayList<>();
arr.add("a");
arr.add("b");
String str = d1.getListFirst(arr);
System.out.println(str);
//例2
String[] strArray=new String[]{"aa","bb","cc"};
List list= d1.copyFromArrayToList(strArray);
}
private T1 getListFirst(List data) {
if (data == null || data.size() == 0) {
return null;
}
return data.get(0);
}
private List copyFromArrayToList(T2[] arr) {
List list = new ArrayList<>();
for (T2 e : arr) {
list.add(e);
}
return list;
}
}
下图是从其他文章中截取的,其中注释解释“限制“T”为String类型”是有误的,下面会进行解释。
这个例子能正常运行是因为 Demo2
完全可以写为:Demo2
这里 private
package GenericStudy; import java.util.ArrayList; import java.util.List; public class Demo2{ public static void main(String[] args) { Demo2 d1 = new Demo2<>(); List arr = new ArrayList<>(); arr.add("a"); arr.add("b"); String str = d1.getListFirst(arr); System.out.println(str); } private T getListFirst(List data) { if (data == null || data.size() == 0) { return null; } return data.get(0); } }
若改为 private T getListFirst(List
这里是因为 Demo2
要求 传入参数 List



