认识泛型:
泛型的定义:在定义类、接口、方法时,同时声明了一个或多个类型变量(如:<E>),称为泛型类、泛型接口、泛型方法,他们统称为泛型(指定传入类型,自动进行检查,避免强转发生错误,编码时就报错,源头上解决问题)
泛型的本质:把具体的数据类型作为参数传给类型变量
例如:ArrayList
底层源码:指定类型代替E传入其中
泛型类
自定义泛型类以及使用:
//泛型类
public class MyArrayList<E> {
private Object[] arr = new Object[10];
private int size;
public boolean add(E e){
arr[size++] = e;
return true;
}
public E get(int index){
return (E) arr[index];
}
}
//使用泛型类
public class Test {
public static void main(String[] args) {
MyArrayList<String> list = new MyArrayList();
list.add("String");
list.add("字符串");
String ele = list.get(1);
System.out.println(ele);
}
}
多参数泛型类以及指定父类泛型类的定义以及使用:
泛型接口的定义以及使用:
泛型接口定义:
//接口定义
public interface Data<T> {
void add(T t);
ArrayList<T>getByName(String name);//name为传入参数
}
泛型接口实现:
//接口实现
public class TeacherData implements Data<Teacher>{
@Override
public void add(Teacher teacher) {
}
@Override
public ArrayList<Teacher> getByName(String name) {
return null;
}
}