一 定义
1. 泛型类定义
public class Generic<T> {//这里的T可以是E、K、V等字母
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
2.泛型方法定义
public class GenericDemo02 {
public<T> void show(T t){
System.out.println(t);
}
}
3.泛型接口定义
public interface Generic<T>{}
4.类型通配符
为了表示各种泛型List的父类,可以使用类型通配符: 1.类型通配符<?> 2.List<?>:表示元素类型位置的List,其元素可以匹配任何的类型 3.这种带通配符的List仅仅代表它是各种泛型List的父类,不能把元素添加到其中
// 类型通配符上限 <? extends 类型>
List<? extends Number> list5 = new ArrayList<Integer>();
// 类型通配符下限<? super 类型>
List<? super Number> list7 = new ArrayList<Object>();
5.可变参数
//这里的可变参数其实是一个数组
public static int sum(int... a) {
return 0;
}
//有其他参数时,可变参数放到最后
public static int sum(int b, int... a) {
return 0;
}
6.可变参数的使用
List的asList(T... a)——不可以增删,可以改
// public static <T> list<T> asList(T... a):返回指定数组支持的固定大小的列表
List<String> list = Arrays.asList("zt1", "zt2", "zt3");
// list.add("java");//UnsupportedOperationException
// list.remove("zt1");//UnsupportedOperationException
list.set(1,"java");//不改变大小就可以
List的of(E... elements)——增删改都不可以
Set的of(E... elements)——不含重复元素,增删改都不可以