1、泛型是什么?为什么要用?
把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型
参数化类型:
-
把类型当作是参数一样传递
-
<数据类型>
只能是引用类型
为什么要用泛型?
没有泛型的时候,任何类型都可以添加到集合中,造成类型的不安全。String 类型对象读取出来的对象需要强转:繁琐 可能有ClassCastException
有了泛型以后:
-
代码更加简洁【不用强制转换】
-
程序更加健壮【只要编译时期没有警告,那么运行时期就不会出现ClassCastException异常】
-
可读性和稳定性【在编写集合的时候,就限定了类型】
2、泛型的类型有哪些?T、<>比较常见
E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类) K - Key(键)
V - Value(值) N - Number(数值类型)
?- 表示不确定的java类型-------》通配符 S、U、V - 2nd、3rd、4th types