ArrayList用法的问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:45:10
我学的是网易学院的孙鑫的课程,看到这里的时候,他编译没错,我编译却出错:
注意:ArrayListTest.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

我想问的是:他用的是2000版的命令提示符,而我用的是现在是2001版的,是不是版本的问题,还是。。。。。。
import java.util.*;
class ArrayListTest
{
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add("wen");
al.add("gou");
al.add("gou");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}
}
}
问一下
你上面写的那一行应该写在哪里?

这个只是警告(warning),而不是错误(error)。

出现警告的原因是
al.get()方法返回的是Object类型,而System.out.println()的参数是一个String,中间进行类型转换的时候有可能出现错误,所以提出这个警告。

解决的方法,
1.把你的ArrayList定义成泛型ArrayList<String> al = new ArrayList<String>(); 意思是你这个ArrayList里面只能存储String类型的对象.不过你目前应该还没学到泛型的概念。我只是提一下。
2.可以在代码中加上@SuppressWarnings("unchecked") ,编译的时候就不会报这个警告了。

注意,不报这个警告不代表这个潜在威胁不存在。

ArrayList al=new ArrayList();
这里最好用泛型
ArrayList<String> al=new ArrayList<String>();
我在eclipse下测试程序没问题