什么是泛型?
JDK 1.5开始引入泛型,泛型可以为集合指定元素类型,添加不符合的元素类型则会编译报错。
Java中泛型中的T ,R ,K ,V ,E 是什么?
public <R> 0bservable<R> compose(Transformer<? super T, ? extends R> transformer){
return ( ( Transformer<T,R>) transformer ).call(this);
}
看下上面的例子,泛型T、R、通配符(?)、上边界 (extends)和下边界(super)都用上了
常用的泛型含义:
- T -Type(类型)
- R - Result(结果)
- K - Key (键)
- V - Value (值)
- E - Element(元素)
- N - Number(数字)
- ? - 不确定类型
集合使用泛型有什么优点?
-
可以只容纳指定类型的对象
-
避免了在运行时出现ClassCastException,在编译时会报错
-
泛型也使得代码整洁,使用时不需要显式转换和instanceOf 操作符
-
也优化了运行时,因为它不会产生类型检查的字节码指令