如果我们在定义类,方法,接口时,如果类型不确定,我们可以定义带有泛型的类,方法,接口
含有泛型的类
public class 类名<E>{
}
public class Fan<E> {
//定义一个数组,充当底层数组,长度锁定为10
Object[] obj = new Object[10];
//定义size,代表集合元素个数
int size;
//add方法
public boolean add(E e){
obj[size] = e;
size++;
return true;
}
//get方法
public E get(int index){
E e = (E) obj[index];
return e;
}
@Override
public String toString() {
return Arrays.toString(obj);
}
含有泛型的方法
格式:修饰符 <E> 返回值类型 方法名(E e){
}
调用时确定类型
public class ListText {
public static <E> void addAll(ArrayList<E> list,E...e){
for (E e1 : e) {
list.add(e1);
}
}
}
含有泛型的接口
public interface 接口名 <E>{
}
泛型通配符?
规定形参上限下限,限制传参
上限
格式:?extends 引用数据类型名
含义:?只能接受extends后面类型的本类类型及子类类型
下限
格式:?super 引用数据类型名
含义:只能接受super后本类类型及其父类类型