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