因为我总是写一些CRUD的代码,泛型的知识都忘得差不多了,今天特地来写一下。
泛型可以认为是 把类型参数化,方便代码重用。
Double[] num = new Double [] {1.11, 2.22};
String[] str = new String [] {"hello", "world"};
我有两个数组,写一个方法得到最后的一个元素
第一种方法:
在方法上的访问修饰符与类型T之间加上<T>
public class Generic01 {public <T> T getLastItem(T[] arr) {return arr[arr.length - 1];}public static void main(String[] args) {Generic01 generic01 = new Generic01();Double[] num = new Double [] {1.11, 2.22};String[] str = new String [] {"hello", "world"};Double res1 = generic01.getLastItem(num);String res2 = generic01.getLastItem(str);}
}
第二种方法:
在类的名称后面加上 <T>,构建类的时候在<>里写明类型
public class Generic02<T> {public T getLastItem(T[] arr) {return arr[arr.length - 1];}public static void main(String[] args) {Double[] num = new Double [] {1.11, 2.22};String[] str = new String [] {"hello", "world"};Generic02<Double> generic_double = new Generic02<>();Double res1 = generic_double.getLastItem(num);Generic02<String> generic_str = new Generic02<>();String res2 = generic_str.getLastItem(str);}
}
如果方法返回的是空的话,需要在public 和 void 之间加上 <T>
public class Generic03 {public <T> void getLastItem(T[] arr) {T t = arr[arr.length - 1];}
}