因为我总是写一些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];
}
}