一个关于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类型。
我想强制你“标明”数据类型的的好处是让你清楚你在做什么,增强了你程序的可读性。
而且这样作的话,数据取出来就不需要强制转换了
偶菜菜,说的很肤浅,期待高人给深入讲解下