Kri*_*mbe 10 java generics javac
有没有可以传递的Java编译器标志告诉编译器不允许使用原始类型?也就是说,对于任何泛型类,让编译器强制使用参数化版本,否则抛出编译错误?
Tom*_*ine 12
JDK7(b38)介绍-Xlint:rawtypes.如上所述,-Xlint:unchecked警告未经检查的转换.
javac团队的Maurizio Cimadamore写了一篇关于它的博客文章.
您可以将Eclipse中原始类型的使用配置为警告或错误.
它位于Preferences/Java/Compiler/Errors and Warnings/Generic types /原型类型的使用下.
javac据我所知,没有这样的东西 - 即使-Xlint:all你没有得到类似的警告:
ArrayList x = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
你可以通过以下方式来警告你:
-Xlint:未选中
这将在一些(但不是全部)缺少泛型的情况下产生警告.
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(final String[] argv)
{
List list = new ArrayList(); // no warning at all
list.add("Hello"); // warning will be on this line
}
}
Run Code Online (Sandbox Code Playgroud)
根据警告,您可以返回并修复代码以将声明添加到声明中.
不理想,如果我没记错,它仍然不会捕捉到一切.