Java源代码中使用泛型的力量

时间:2013-04-08 07:58:02

标签: java generics

在Java 6中,使用泛型是可选的。没有泛型的代码会编译,但Eclipse会对此产生问题,所以我开始想知道更高版本的Java可能需要使用泛型,例如。

Collection<?> foo = ...

将在

时编译
Collection foo = ...

将不再。或者:编译器是否可以像这样表现? - 像Perl的“use strict”之类的东西?

换句话说:人们是否应该期望将工作花费在目前工作正常但未配备仿制药的Java资源上? Oracle是否有一些代码向后兼容性保证?

搜索 force generics java require generics 并没有向我提供有用的信息。

3 个答案:

答案 0 :(得分:3)

如果不允许使用原始类型,则不允许使用旧代码。但是,您可以配置Eclipse以生成错误。请参阅窗口 - &gt;偏好 - &gt; Java - &gt;编译器 - &gt;错误/警告,在泛型类型部分中。

答案 1 :(得分:1)

没有明确的方式可以确定,但我非常怀疑Oracle会弃用使语法结构无效。这就像强迫你在真正需要时使用钻石推理一样。

我可以肯定地说Oracle没有计划从Java中删除语法。太多人会抱怨(因为几乎所有东西都会破裂)。

答案 2 :(得分:1)

IntelliJ也警告使用原始类型。它也必须是其他IDE。所以,我想,你使用CI /命令行进行实际构建的情况..

您可以获得编译器警告(Xlint:unchecked)和一些后期处理。