泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系,也就是说,泛型方法所属的类是不是泛型类都没有关系
//泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系
//也就是说,泛型方法所属的类是不是泛型类都没有关系
//下述方法才为泛型方法,注意格式
public <E> List<E> copyFromArrayToList(E[] arr) {
List<E> list = new ArrayList<>();
for (E e : arr) {
list.add(e);
}
return list;
}
总结:泛型方法可以声明为静态的,原因:泛型参数是在调用方法的时候确定的,并非在实例化类时确定。
/**
* 下面的为静态泛型方法,为什么可以呢,因为泛型方法是被对象调用的,
* 而之前的带类的泛型参数的静态方法,是类初始化的时候就被调用了
* 总结:泛型方法可以声明为静态的,原因:泛型参数是在调用方法的时候确定的,并非在实例化类时确定。
**/
public static <E> List<E> copyFromArrayToList2(E[] arr) {
List<E> list = new ArrayList<>();
for (E e : arr) {
list.add(e);
}
return list;
}
测试泛型方法
/**
* 测试泛型方法
*/
@Test
public void test01() {
Order<String> order = new Order<>();
Integer[] arr = new Integer[]{1, 2, 3};
List<Integer> integers = order.copyFromArrayToList(arr);
System.out.println(integers);
}