在Java 6中,使用泛型是可选的。没有泛型的代码会编译,但Eclipse会对此产生问题,所以我开始想知道更高版本的Java可能需要使用泛型,例如。
Collection<?> foo = ...
将在
时编译Collection foo = ...
将不再。或者:编译器是否可以像这样表现? - 像Perl的“use strict”之类的东西?
换句话说:人们是否应该期望将工作花费在目前工作正常但未配备仿制药的Java资源上? Oracle是否有一些代码向后兼容性保证?
搜索 force generics 或 java require generics 并没有向我提供有用的信息。
答案 0 :(得分:3)
如果不允许使用原始类型,则不允许使用旧代码。但是,您可以配置Eclipse以生成错误。请参阅窗口 - &gt;偏好 - &gt; Java - &gt;编译器 - &gt;错误/警告,在泛型类型部分中。
答案 1 :(得分:1)
没有明确的方式可以确定,但我非常怀疑Oracle会弃用和使语法结构无效。这就像强迫你在真正需要时使用钻石推理一样。
我可以肯定地说Oracle没有计划从Java中删除语法。太多人会抱怨(因为几乎所有东西都会破裂)。
答案 2 :(得分:1)
IntelliJ也警告使用原始类型。它也必须是其他IDE。所以,我想,你使用CI /命令行进行实际构建的情况..
您可以获得编译器警告(Xlint:unchecked)
和一些后期处理。