这个错误是什么意思?
Note: Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
有什么建议可以避免这种错误吗?
这个错误是什么意思?
Note: Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
有什么建议可以避免这种错误吗?
这就是您在不指定类型的情况下使用Collections时遇到的错误。你可能有类似的东西:
ArrayList myList = new ArrayList(); // or some other Collection class
如果是这种情况,您需要更改它以指定要存储的对象类型。例如:
ArrayList<String> myList = new ArrayList<String>();
阅读 Java泛型以获取更多信息。
这是我最好的猜测,没有看到您的代码和完整的错误消息。该消息可能还有其他原因,这只是我之前看到的伴随该消息的问题。
首先,使用 -Xlint:unchecked 重新编译以查看问题所在。然后解决这些问题。未经检查的警告有许多潜在的高级原因。一是您没有在应有的地方提供类型参数。在某些情况下它们是不可避免的,然后您可以抑制特定警告,但这些是例外情况,必须注意不要抑制真正重要的警告。
因此,如果您对所揭示的任何特定问题有疑问,请使用 -Xlint:unchecked 重新编译并发布其他问题。
这是什么意思?
Java 泛型允许您编写如下内容:
List<String> l = ...;
String s = l.get(0); // note there is no explicit typecast.
但是如果编译器告诉你你的代码有“未经检查或不安全的操作”,那就是说你违反了安全使用泛型的规则,你的代码可能会在意想不到的地方出现运行时类转换异常;例如,在上面的语句中,我们省略了类型转换。
有几件事会导致编译器抱怨未经检查或不安全的操作,每件事都需要不同的补救措施。执行编译器告诉您的操作并使用 -Xlint 选项运行它。