3

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

Collection<?> foo = ...

将编译同时

Collection foo = ...

不会了。或者:编译器可以被迫这样做吗?——类似于 Perl 的“<a href="https://stackoverflow.com/questions/8023959/why-use-strict-and-warnings">use strict”?

换句话说:人们是否应该期望工作需要花费在生成当前运行良好但没有配备泛型的 Java 源代码上?Oracle 是否有一些代码向后兼容性保证?

搜索force genericsjava require generics并没有让我找到有用的信息。

4

3 回答 3

3

如果不允许使用原始类型,则不允许您使用旧代码。但是,您可以配置 Eclipse 以生成错误。请参阅Window -> Preferences -> Java -> Compiler -> Errors/Warnings中的Generics Types部分。

于 2013-04-08T08:11:20.443 回答
1

没有明确的方式可以肯定地说,但我高度怀疑 Oracle 会否决语法结构并使语法结构无效。这就像在不需要时强迫您使用钻石推理。

我可以相当肯定地说,Oracle 没有从 Java 中删除语法的计划。太多人会抱怨(例如,几乎所有东西都会坏掉)。

于 2013-04-08T08:02:26.783 回答
1

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

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

于 2013-04-08T08:06:27.153 回答