之前没有透彻的理解泛型,所以特意好好学习了一下
该段转自菜鸟教程:
“Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。”
self:泛型,即“参数化类型”
说白了,泛型就是在定义类或者接口的时候,把具体的类型空出来先不定义,在需要用到这个类或者接口的时候按需求再定义具体的类型;这样就可以更加灵活的控制参数,如果设置了变量类型,那么这个类或者接口的类型就可以按要求被限制。如果不设置类型,那就可以为任意类型。
使用泛型的好处就在于,当我们对于一些可能涉及到不同类型数据的需求没有明确定向时(敏捷开发导致往往需求还没有明确,研发已经启动了),对一些方法,接口和类有更灵活的把控能力。
下面定义一个泛型接口
public interface Generator<T> {
public T next();
}
实现泛型接口(未声明具体类型)的类也必须声明泛型,并且要重写接口方法
class CarGenerator<T> implements Generator<T>{
@Override
public T next() {
return null;
}
}
泛型接口已声明具体类型,即传入实参时,实现的类无论类还是方法,都要统一该实参类型
//所有T都要转换成对应是实参,这里为String
public class CarGenerator implements Generator<String> {
private String[] car = new String[]{"benchi", "baoma", "aodi"};
@Override
public String next() {
return null;
}
}
学习源地址:
https://blog.csdn.net/s10461/article/details/53941091
作者写的更加详细透彻!