引言
泛型的概念: 参数化类型
适用于多种数据类型执行相同的代码泛型中的类型在使用时指定泛型归根到底就是“模版”
示例
在类中若没有声明此类型,在方法使用需要事先声明,声明位置在修饰符与返回类型之间如:
public static <T> void printArray(T[] array){ }
数组元素逐个输出
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.println(element);
}
}
泛型方法的使用
<String>gMethod1.method1("str");
多个泛型声明时使用逗号隔开如:
public static <T1,T2> void printArray(T1[] array1,T2 array2){ }
泛型接口
public interface TempInterface<T1, T2> {
void setData(T1 data);
T2 getData();
}
// 接口实现
public class test implements TempInterface<Integer, String> {
@Override
public void setData(Integer data) {
}
@Override
public String getData() {
return null;
}
}
返回值也可以为泛型
限定泛型的范围
// extends 的使用,限定泛型的范围,等于或者是extends的子类;只有extends,没有super,通配符才有extends和super
class G2<T extends Number> {
T content;
}
通配符(?)
<?>只能用于获取时使用,并且会丢失数据类型,返回的是Object。set数据是不管用的