.java使用未经检查或不安全的操作。注意:使用-Xlint重新编译:未选中以获取详细信息不确定代码的哪个部分

时间:2014-10-23 04:51:05

标签: java

我是JAVA领域的新手,我为我的任务编写了一个代码,当我使用Netbeans编译它时它工作正常。当我通过cmd编译我的.java文件时,我得到上面提到的错误。如果它可以确定哪一行产生了不安全的操作,我本来会有所帮助,但对于我的生活,我不知道编译器所指的源是哪一部分。

此处代码:http://pastebin.com/nmTqghDi

使用的cmd行:javac Barcenas_PA.java

3 个答案:

答案 0 :(得分:2)

检查第86行.ArrayList实例化也必须具有通用标记。 E.g。

ArrayList<String> temp = new ArrayList<String>

答案 1 :(得分:2)

您已将阵列列表初始化为原始类型

79
100
207
228
275
282
353
401
413
426
439 and 
452  

此操作不安全,因为您永远不知道数据结构可能存储的对象类型。

由于java.util.ArrayList是一个泛型类,因此必须将其初始化为

ArrayList<String> list = new ArrayList<String>();  

或者从Java 7及更高版本开始

ArrayList<String> list = new ArrayList<>();  // Empty angular brackets to simplify initialisation.  

如果您仍然收到警告,请按以下方式编译:

javac course_214_ma/Barcenas_PA.java -Xlint:unchecked

答案 2 :(得分:1)

ArrayList<String> dataRow = new ArrayList();

raw-type,将其更改为

ArrayList<String> dataRow = new ArrayList<>();

你有很多原始类型。然后你永远不会使用counter。要么将其注释掉,要么将其打印出来,或者将其放入if。最后,您可以忽略关于不关闭Scanner的警告。因为你用System.in来封闭那些Scanner(s)会是一个坏主意。