我只是尝试一个简单的代码并获得此注释。程序已经成功编译和执行,但是这个说明让我感到不安。
Program uses unchecked or unsafe operations, recompile using -Xlint:unchecked for details
-Xlint:Unchecked
做什么?以及如何使用它?我在编译时使用了这个:
javac <filename>.java -Xlint:unchecked
,结果是
[unchecked] unchecked call to add <E> as a member of raw type HashSet h.add("raj");
并在其他方面得到了它的意思是什么?
import java.util.HashSet;
import java.util.Iterator;
public class HashSetDemo
{
public static void main(String[] args)
{
HashSet h = new HashSet();
h.add("raj");
h.add(11);
h.add(22.2);
h.add('c');
h.add(true);
h.add(null);
h.add(null);
System.out.println("Duplicate:"+h.add(11));
System.out.println(h);
Iterator itr = h.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
}
答案 0 :(得分:1)
您应该使用HashSet
的类型:
Set<String> strings = new HashSet<>();
但是你只能将String
个实例放在其中。
在您的示例中,您尝试将String
,Integer
,Float
和Boolean
个实例添加到其中,这是没有意义的。
查看the Java Tutorial了解泛型。