1.泛型是JDK1.5之后的新特性,用于解决安全问题,是一个类型的安全机制。
2.泛型的好处:⒈将运行时出现的问题ClassCastException转移到编译时期,方便程序员解决安全问题。
⒉避免了在集合存储时的类型丢失(取出时需要强制转换的麻烦)
3.泛型的格式:通过<>来定义要操作的引用数据类型。
例如:ArrayList<Character> list = new ArrayList<String>();
4.泛型类型必须是引用类型,泛型的反射!!
5.泛型类:当类中要操作的引用数据类型不确定时,可以定义泛型类来完成扩展。
⒈泛型类定义的泛型在整个类中有效,如果被方法使用,那么当泛型类的对象指定要操作的具体类型之后,所有的非静态泛型方法的就确定了。
⒉创建对象时要指定泛型类的类型。
⒊类上面声明的泛型只能应用与非静态函数,如果静态方法需要使用泛型,要独立生命。
⒋如果对象建立了泛型的指定类型后,那么该对象操作方法时,这些方法只能操作一种具体类型。
⒌泛型是提供给java编译使用的,将运行时异常转化为编译时异常。
6.函数上泛型的定义:
public <T> t method(){T t};
public <T> void method1(){T t};
7.泛型方法:为了让不同的方法可以操作不同的类型,而且类型还不确定,可以将泛型定义在方法上。
8.泛型接口。
9.通配符<?>
10.泛型限定:
⒈ <? extends E> :可以接收E类型或E类型的子类。 上限限定
⒉<? super E>:将接收E类型或E类型的父类。 下限限定