日期:2014-05-20  浏览次数:20882 次

一个关于Set的问题!
我的目的是向HashSet中填充数据,然后再将它打印出来。但是编译过程中老是说我进行了不安全的操作,详细信息请用-Xlint:unchecked重新编译

这到底是怎么回事呢?请高人给解释一下
import   java.util.*;
class   Test
{
static   Set   fill(Set   s,   int   size)
{
for(int   i=1;i <=size;i++)
{
s.add(new   Integer(i));
}
return   s;
}
static   void   test(Set   s)
{
fill(s,5);
System.out.println(a);
}
  public   static   void   main(String   args[])
{
test(new   HashSet());
}  

}


------解决方案--------------------
你用的是jdk50以上的版本吧~
Set s 改成 Set <Integer> s
test(new HashSet <Integer> ())改成
就可以了
------解决方案--------------------
泛型Set <String> s=new HashSet <String> ();
------解决方案--------------------
System.out.println(a);
楼主,这句能编译通过?a都没定义过
------解决方案--------------------
偶给lz解释吧,这个是要求你 “标明” 你要向集合里面放 哪一种类型 的数据,因为集合里可以存放任何object类型。
我想强制你“标明”数据类型的的好处是让你清楚你在做什么,增强了你程序的可读性。
而且这样作的话,数据取出来就不需要强制转换了

偶菜菜,说的很肤浅,期待高人给深入讲解下