java中用到ArrayList.sort()为什么会出现“使用了未经检查或不安全的操作”的提示?求高手解答 10

importjava.util.*;classArrayListTest{publicstaticvoidprintElements(Collectionc){Itera... import java.util.*;
class ArrayListTest
{
public static void printElements(Collection c)
{
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
public static void main(String[] args)
{
Student s1=new Student(2,"zhangsan");
Student s2=new Student(1,"lisi");
Student s3=new Student(3,"wangwu");
ArrayList<Student> al=new ArrayList<Student>();
al.add(s1);
al.add(s2);
al.add(s3);
Collections.sort(al);//提示使用了未经检查或不安全的操作
printElements(al);
}
}
class Student implements Comparable
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num?1:(num==s.num?0:-1);
}
public String toString()
{
return num+":"+name;
}
}
展开
 我来答
宁小哥的分享
2013-04-09 · TA获得超过273个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:311万
展开全部
存在类型匹配隐患,在个人用一般没问题,自己能确认类型无误,在main()上面加@SuppressWarnings("unchecked")就行

要是给别人用或者教常用和可能以后需要扩展,还是改了好。
1,.Student类的定义改为class Student implements Comparable<Student>

2.类中的方法改为
public int compareTo(Student s) {
return num > s.num ? 1 : (num == s.num ? 0 : -1);
}
会吃草的车
2013-04-09 · 超过20用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:58.7万
展开全部
Student 这个对象需要序列化吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-04-09 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2907万
展开全部
不是什么错误,警告而已。
没问题,不用处理的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式