2012-08-07 133 views
0

我必须工作是一个有点过时的JVM,它只支持Java 1.4。我想在我的代码中使用泛型,根据这篇文章http://www.ibm.com/developerworks/java/library/j-jtp02277/index.html可能。不幸的是,我们库中的Collections类不是通用的,它们不能被替换(这意味着我不能使用http://download.oracle.com/otndocs/jcp/jsr14-2.4-ea-demo-oth-JPR/)。一个明显的解决方案是为所有主类(ArrayList,HashMap,HashSet和创建泛型接口Map等)编写通用包装器。这是一个相当重要的工作,所以我想知道是否可能已经有一个库提供了此功能。有没有包装非泛型集合的泛型集合库?

+2

“有点过时”?尝试了很多过时的。 JDK 5已经过了其支持生命周期,并且JDK 7是当前的标准。我建议至少升级到JDK 6。 – duffymo 2012-08-07 17:15:47

+0

我想我没有得到这个问题。如果您开发的代码没有泛型,那么如果您希望在1.4 JVM上运行,则无需添加它们。如果你的代码是用泛型编写的,我认为类型擦除将从* .class文件中删除它。 – 2012-08-07 17:16:48

回答

0

你能编译一个JVM 1.4的代码吗?

如果您的代码是针对Java5(6或7)编译的,那么您可能会在类文件中看到“错误的版本”--Error。

如果您使用任何已编译的库,则必须对Java 1.4进行编译。

+0

我可以用-source 1.5和-target jsr14进行编译。在这种情况下,我可以使用泛型,但我的集合库不是通用的。 – 2012-08-07 17:10:43

+0

只是为了澄清,任何代码都必须编译为Java 1.4 – 2012-08-07 17:13:16