自定义泛型方法
自定义泛型方法
代码示例
package com.atguigu.generic;
import java.util.ArrayList;
import java.util.List;
/**
* 功能描述
*
* @since 2022-05-25
*/
public class GenericMethod<T> {
T a;
// 非泛型方法
void set(T a) {
this.a = a;
}
// 泛型方法
<E> List copyFromArrayToList(E[] array) {
ArrayList<E> arrayList = new ArrayList<>();
for (E ele : array) {
arrayList.add(ele);
}
return arrayList;
}
public static void main(String[] args) {
Integer[] a = {1, 2, 3};
GenericMethod<String> genericMethod = new GenericMethod<>();
List list = genericMethod.copyFromArrayToList(a);
System.out.println(list);
String[] b = {"abb", "abc"};
GenericMethod<Object> genericMethod1 = new GenericMethod<>();
List list1 = genericMethod1.copyFromArrayToList(b);
System.out.println(list1);
}
}
泛型方法可以是静态方法
package com.atguigu.generic;
import java.util.ArrayList;
import java.util.List;
/**
* 功能描述
*
* @since 2022-05-25
*/
public class GenericMethod<T> {
T a;
// 非泛型方法
void set(T a) {
this.a = a;
}
// 泛型方法
static <E> List copyFromArrayToList(E[] array) {
ArrayList<E> arrayList = new ArrayList<>();
for (E ele : array) {
arrayList.add(ele);
}
return arrayList;
}
public static void main(String[] args) {
Integer[] a = {1, 2, 3};
List list = GenericMethod.copyFromArrayToList(a);
System.out.println(list);
String[] b = {"abb", "abc"};
List list1 = GenericMethod.copyFromArrayToList(b);
System.out.println(list1);
}
}