我是JAVA领域的新手,我为我的任务编写了一个代码,当我使用Netbeans编译它时它工作正常。当我通过cmd编译我的.java文件时,我得到上面提到的错误。如果它可以确定哪一行产生了不安全的操作,我本来会有所帮助,但对于我的生活,我不知道编译器所指的源是哪一部分。
此处代码:http://pastebin.com/nmTqghDi
使用的cmd行:javac Barcenas_PA.java
答案 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)会是一个坏主意。