java泛型

泛型

泛型,即带有类型参数的类型。

关于C#,Java, C++的泛型比较,C#的实现者有一个专门的采访。这个文章中提到,C#的泛型是为每一种具体的类型生成一个类,在运行时生成,所以基于反射可以获取具体的类型代码;而Java的泛型,为了兼容以前的VM。

Java泛型的缺点在于,编译器手动加上了强制转换,所以执行效率并没有提升,只是起到语法糖的作用。

关于Java的泛型实现,可以参考JSR-14(google中搜索Adding Generics to Java)。

关于兼容性

这里找到一篇文章介绍怎么将Java 1.5的源代码编译到Java 1.4的VM上运行:https://alblue.bandlem.com/2010/10/compiling-java-generics-with-14.html

Java编译代码时候可以指定-source 1.5-target jsr14,这样做可以把Java 1.5中泛型的代码编译出的.class文件放在1.4的机器上运行。当然,如果代码使用了1.5的其他特性,比如enum,则编译失败,原因是enum都会编译成java.lang.Enum 的子类,而1.4中是没有java.lang.Enum的。

你可能感兴趣的:(Java,java)