java编译时出现使用了未经检查或不安全的操作解决方法

时间:2021-05-19

在本人用editplus写java文件时碰到的问题。

复制代码 代码如下:
import java.util.*;
class collection{
public static void main(String[] args) {
Collection c1=new ArrayList(25);

c1.add(new String("one"));
c1.add(new String("two"));
String s="three";
c1.add(s);
for (Iterator i=c1.iterator();i.hasNext();)
{

System.out.println(i.next());
}
}
}

然后查找到以下原因,这是转自别人的。


在编译java源文件时,你使用的是jdk1.5或以上时,可能出现这个问题。(使用了未经检查或不安全的操作;请使用 -Xlint:unchecked 重新编译。)
原因是jdk1.5里的集合类的创建和jdk1.4里有些区别,主要是jdk1.5里增加了泛型,也就是说可以对集合里的数据进行检查。在jdk1.5以前,如果没有指定参数类型,则 JDK 1.5 编译器由于无法检查 给出的参数是否合乎要求,而报告 unchecked 警告,这并不影响运行。按照提示,编译是指定参数即可取消这样的警告。或者为其制定类型参数。
复制代码 代码如下:
List temp = new ArrayList ();
temp.add("1");
temp.add("2");

修改为
复制代码 代码如下:
List <String> temp = new ArrayList <String> ();
temp.add("1");
temp.add("2");


然后修改代码为

复制代码 代码如下:
import java.util.*;
class collection{
public static void main(String[] args) {
Collection<String> c1=new ArrayList<String>(25);

c1.add(new String("one"));
c1.add(new String("two"));
String s="three";
c1.add(s);
for (Iterator i=c1.iterator();i.hasNext();)
{

System.out.println(i.next());
}
}
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章