Java泛型学习
2013-06-20 19:17
253 查看
JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html
也就是说,凡是用到Object强制类型转换的地方,可以换用泛型机制;凡是可以使用泛型机制的地方,可以换用Object强制类型转换。
Java 语言中的泛型基本上完全在编译器中实现,由编译器执行类型检查和类型推断,然后生成普通的非泛型的字节码。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html
数组是协变的,泛型是非协变的。
对于数组而言,协变,即Integer是Number,Integer[]也是Number[]。读操作没问题,写操作存在严重的安全隐患。
对于泛型而言,非协变,即Integer和Number一毛钱关系都没有,在泛型机制中,读写操作都是安全的。
数组能够协变而泛型不能协变的另一个后果是,不能实例化泛型类型的数组(
tips:数组与泛型的结合,一定要小心。
泛型在Java中的应用
关键字:<,>,?,<T>,<T,V>,<T extends >,<T super >
类定义:
public class<T,V>{
}
方法定义:
public <T> method(){
}
类引用:
List<T>
也就是说,凡是用到Object强制类型转换的地方,可以换用泛型机制;凡是可以使用泛型机制的地方,可以换用Object强制类型转换。
Java 语言中的泛型基本上完全在编译器中实现,由编译器执行类型检查和类型推断,然后生成普通的非泛型的字节码。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html
数组是协变的,泛型是非协变的。
对于数组而言,协变,即Integer是Number,Integer[]也是Number[]。读操作没问题,写操作存在严重的安全隐患。
对于泛型而言,非协变,即Integer和Number一毛钱关系都没有,在泛型机制中,读写操作都是安全的。
数组能够协变而泛型不能协变的另一个后果是,不能实例化泛型类型的数组(
new List<String>[3]是不合法的),除非类型参数是一个未绑定的通配符(
new List<?>[3]是合法的)。引自:http://www.ibm.com/developerworks/cn/java/j-jtp01255.html
tips:数组与泛型的结合,一定要小心。
泛型在Java中的应用
关键字:<,>,?,<T>,<T,V>,<T extends >,<T super >
类定义:
public class<T,V>{
}
方法定义:
public <T> method(){
}
类引用:
List<T>
相关文章推荐
- Java泛型学习笔记--Java泛型和C#泛型比较学习(一)
- Java泛型学习-理解泛型的内部实现
- 学习记录 java泛型资料
- java泛型学习(1)
- Java泛型与反射机制---学习笔记
- Java学习总结第三十天Java泛型(三)
- Java泛型--学习笔记
- Java泛型学习
- 尚硅谷java学习笔记——8.java泛型(Generic)
- Java泛型学习总结
- java泛型简单学习
- Java泛型学习二
- Java泛型的学习笔记[1]—基础知识
- java泛型学习和实践(3)
- Java泛型学习笔记
- Java泛型学习系列-绪论
- java泛型总结学习
- JAVA泛型学习笔记
- Java基础学习总结(83)——Java泛型总结
- Java泛型学习