1、什么是泛型?
泛型的基本定义为,参数化类型。在没有泛型之前,在方法传参时,如果参数为对象时,一般都是需要给确定的对象,而在出现了泛型后,我们可以传递一系列的对象。使得程序更加灵活。
2、为什么需要泛型?
a、在编译器起作用,意味着我们能在程序启动前就对程序进行一次排错过程。降低了运行时异常产生的可能性。
b、强化类型的作用,能够做好很好的前后兼容,由于继承的存在,其实很多类都可以相互转换的。
c、代码的复用性得到了提高,很多时候我们几个子类的参数可以处理为一个父类的子类传入,然后这些就可以利用父类的方法进行一些大家都会使用的方法,就不需要每一个子类都写同一段代码了。
3、泛型的分类
a、泛型类
泛型类,类的类型由传入的参数的类型决定。
简单泛型类例子
public Class user<T> {
private T t;
public User(T t){
this.t = t;
}
public T getUser(){
return t;
}
}
b、泛型接口
接口类型由实现的类决定,实现的可以是泛型类,也可以是具体的类型。
public interface User<T> {
publice T t;
}
c、通配符的类型
可以通过一些关键字快速指定泛型
如 T,E,K,V,?, User<? extends Student> , User<? extends Student>,< ? super User>
d、泛型方法
对于传入的方法的参数进行泛型化,使得方法不需要使用固定的对象做参数。
public <T> void getStudentList(T t, List<T> lists){
}