编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请使用-Xlink:unchecked重新编译

import java.util.*;
class TreeSettest
{
public static void main(String[] args)
{
TreeSet<Object> ts=new TreeSet<Object>(new student.studentComparator());
ts.add(new student(1,"zhangsan"));
ts.add(new student(2,"lisi"));
ts.add(new student(3,"wangdu"));
ts.add(new student(2,"ax"));

Iterator it=ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}

class student implements Comparable
{
int num;
String name;
student(int num,String name)
{
this.num=num;
this.name=name;
}

static class studentComparator implements Comparator
{
public int compare(Object o1,Object o2)
{
student s1=(student)o1;
student s2=(student)o2;
int result=s1.num>s2.num?1:(s1.num<s1.num?-1:0);
if(result==0)
{
result=s1.name.compareTo(s2.name);
}
return result;
}
}

public String toString()
{
return "num="+num+","+"name="+name;
}

public int compareTo(Object o)
{
student s=(student)o;
if(num>s.num)
{
return 1;
}
else if(num<s.num)
{
return -1;
}
else
return 0;
}
}
注意,我这里初始化
TreeSet<Object> ts=new TreeSet<Object>(new student.studentComparator());
的时候,想传递实现了Comparator接口的比较器对象student.studentComparator();
把student.studentComparator()去掉,是没有这个警告的,加上之后就有警告;
我现在的目的是想加上这个比较器对象后,没有警告提示

这个提示不是错误吧,应该是警告吧 

那就用@SuppressWarnings("unchecked")注解吧 

图中的List没有使用泛型,所以会报不安全的警告 .@SuppressWarnings("unchecked")的意思是隐藏所有的警告信息

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-27
java中任何类都是Object 类的子类,所以TreeSet<Object>的<>里跟不写 一样,任何类型都可以装进去。
第2个回答  2011-04-27
初始化的时候改成这样:
TreeSet<student> ts=new TreeSet<student>();
第3个回答  2011-04-27
在方法头部加个@SuppressWarnings("unchecked")

编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请...
这个提示不是错误吧,应该是警告吧 那就用@SuppressWarnings("unchecked")注解吧 图中的List没有使用泛型,所以会报不安全的警告 .@SuppressWarnings("unchecked")的意思是隐藏所有的警告信息

编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请...
改成 private LinkedList<Object> mm=new LinkedList<Object>();集合里面有个概念叫泛型。。。如果你不在后面声明放到容器里的类型,就会给出警告。不过还是可以编译通过的,要去除警告就在后面指定个类型。。

...或不安全的操作。有关详细信息, 请使用 -Xlink:unchecked重新编...
这是一个警告的JDK1.5,JDK1.5增加了对泛型的支持,这将有一个集合里面的数据类型检查。如果你使用泛型时,没有指定的信息类型(名单<your对象>列表=新的ArrayList <你的对象>的(),其中,“对象”类型的信息),你可以不检查给定的参数遵守的要求出现unchecked警告,这并不影响程序的运行。

...检查或不安全的操作。有关详细信息,请使用-Xlink:unchecked重新编...
回答:哈哈,选我吧!JList现在支持泛型了 你可以使用JList 这样就叫类型检查

相似回答