不多说,举个例子:
//jdk1.5以前
ArrayList n = new ArrayList();
//jdk1.5开始
ArrayList<String> m = new ArrayList<String>();
我的总结,泛型就是为了规定操作对象的类型而产生,因为在多态盛行的java中,不规定操作对象的类型,很容易出现转换(强转、暗装、自封装等)出错,并且这种出错在编译阶段不能发现,在运行时才报错。
泛型使用范围:
1、类可以使用泛型
2、接口可以使用泛型
3、非静态方法可以使用泛型(静态方法如需使用泛型,需自行定义泛型,而不能使用声明类的泛型)
4、未知声明泛型使用<?>定义
5、泛型可以继承<? extend Person> <? super Person>
6、方法泛型写在返回值前(修饰符后),其他情况泛型紧跟类型之后。