JAVA高階複習-自定義泛型方法
阿新 • • 發佈:2020-09-11
泛型方法:在方法中出現了泛型的結構,泛型引數與類的泛型引數沒有任何關係,也就是說,泛型方法所屬的類是不是泛型類都沒有關係
//泛型方法:在方法中出現了泛型的結構,泛型引數與類的泛型引數沒有任何關係 //也就是說,泛型方法所屬的類是不是泛型類都沒有關係 //下述方法才為泛型方法,注意格式 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);
}