出现错误:使用了未经检查或不安全的操作。|已经解决,但还请高人帮忙解释

00915132
出现错误:使用了未经检查或不安全的操作。|已经解决,但还请高人帮忙解释

虽然错误,但仍有结果出现。请问是怎么回事?
错误提示:注意:G:/hobby/prog/java/exercise/test0207/src/test0207/test0207.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。



源代码如下:package test0207;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class test0207 {
    public static void main(String[] args) {
       int i,j=0;
       Random r=new Random();               
       Set nums=new HashSet();                  //估计错误原因
       while((nums.size())<n){
           i=Math.abs(r.nextInt())%10000;
           nums.add(new Integer(i));
           j++;
       }
       System.out.println(j);
    }
  final static int n=5000;  
}

[[i] 本帖最后由 00915132 于 2008-2-13 23:10 编辑 [/i]]

00915132

Set nums=new HashSet();
改为
Set<Integer> nums=new HashSet<Integer>();
即可,

加个<Integer>等于做了个标记,这个集合就只能放这样的对象
但还是不明白……

fl3w
[quote]原帖由 [i]00915132[/i] 于 2008-2-13 23:09 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7958271&ptid=1052493][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

Set nums=new HashSet();
改为
Set nums=new HashSet();
即可,

加个等于做了个标记,这个集合就只能放这样的对象
但还是不明白…… [/quote]
有什么不明白的,就是原来啥都可以放的,现在给你定死了,用某个“牛人”的话说就是“为了编译阶段时就能发现错误”:outu: :outu: :outu:
你也可以像我一样,认为当初设计这个特征的人脑袋瓜进水了。

00915132
:em03: 谢谢,谢谢谢谢

microjuz
回复 #3 fl3w 的帖子

不要误人子弟!

fecasmoy123
[quote]原帖由 [i]fl3w[/i] 于 2008-2-14 09:05 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7958732&ptid=1052493][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

有什么不明白的,就是原来啥都可以放的,现在给你定死了,用某个“牛人”的话说就是“为了编译阶段时就能发现错误”:outu:utu:" /> :outu:utu:" /> :outu:utu:" />
你也可以像我一样,认为当初设计这个特征的人脑袋瓜进水了。 [/quote]

这里是泛型里面的类型限定,这样的代码更安全,
是着想一想下面这段代码,
        Set iii = new Set();
        iii.add("hello");
        iii.add(new Integer(1));
        …………
给iii中放的对象你知道什么时候是String,什么时候是Integer的?
是可以强制类型转换,
但是无法确定具体的类型,因为往里面放的东西的类型是随机的,(当然集合中的元素是单一类型时,就不存在这个问题了,所以就有了类型限定)

00915132
这下思路全清晰了,谢谢各位帮助

野火烧不尽
好好的顶一顶:mrgreen:

野火烧不尽
好好的顶一顶,好好的顶一顶!

野火烧不尽
好好的顶一顶,好好的顶一顶!:outu:

野火烧不尽
好好的顶一顶,好好的顶一顶!

野火烧不尽
好好的顶一顶,好好的顶一顶!

野火烧不尽
好好的顶一顶,好好的顶一顶!:wink: