是什么导致javac发出“使用未检查或不安全操作”警告?

是什么导致javac发出“使用未检查或不安全操作”警告?

例如:

javac Foo.javaNote: Foo.java uses unchecked or unsafe operations.Note: Recompile with -Xlint:unchecked for details.


一只斗牛犬
浏览 831回答 3
3回答

侃侃无极

如果您使用的集合没有类型说明符(例如,Arraylist()而不是ArrayList<String>())。这意味着编译器无法检查您是否以一种类型安全的方式使用集合,使用泛型.要消除警告,只需具体说明您要存储在集合中的对象类型。所以,而不是List&nbsp;myList&nbsp;=&nbsp;new&nbsp;ArrayList();使用List<String>&nbsp;myList&nbsp;=&nbsp;new&nbsp;ArrayList<String>();在Java 7中,可以使用类型推理.List<String>&nbsp;myList&nbsp;=&nbsp;new&nbsp;ArrayList<>();

森栏

如果您按照它的建议并使用“-xlint:uncheck”开关重新编译,它将提供更详细的信息。除了使用原始类型(如其他答案所述)外,未经检查的强制转换也可能导致警告。使用-xlint编译之后,您应该能够重新工作代码以避免警告。这并不总是可能的,特别是当您与无法更改的遗留代码集成时。在这种情况下,您可以决定在您知道代码是正确的地方取消警告:@SuppressWarnings("unchecked")public&nbsp;void&nbsp;myMethod(){ &nbsp;&nbsp;&nbsp;&nbsp;//...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java