泛型
简介
-
是一种未知的数据类型 当不知道用什么类型的时候可以使用泛型
-
JDK5引入的新特性 广泛应用与容器集合中
-
E e: Element 元素
-
T t: Type类型
-
public class ArrayList<E>{ public E get(int index) {} public E set(int index, E element){} }
-
当创建对象的时候 会指定类型 并传递进去.
自定义泛型
-
泛型类
//泛型中使用的字母可以为任意的大写字母 但为了代码可读性 约定俗成为常见的几种 public class GenericClass<E> { private E name; public E getName() { return name; } public void setName(E name) { this.name = name; } } //创建类实例对象时指定类型 若不指定默认为Object类 GenericClass<Integer> gc=new GenericClass<>(); gc.setName(1);
-
泛型方法
//格式: 修饰符<泛型> 返回值类型 方法名(参数列表){} public <M> void println(M m){ System.out.println(m); } //调用时参数传递什么类型 泛型就是什么类型
-
泛型接口
public interface GenericInterface<E>{ public abstract void method(E e); }
泛型通配符
-
? 代表任意的数据类型
-
不能创建对象使用 只能作为方法的参数使用
-
public static void print(ArrayList<?> list){}
-
泛型上,下限限定
? extends E: 使用的泛型只能是E的子类或者本身 ? super E: 使用的泛型只能是E的父类或者本身