我在ht.keySet()
所说的行上收到以下错误:
类型不匹配:无法从元素类型Object转换为int
ht
是LinkedHashMap
。
for (int key : ht.keySet())
{
if(ht.get(key).size() == 0)
{
System.out.println("There is no errors in " + key) ;
}
else
{
System.out.println("ERROR: there are unexpected errors in " + key);
}
}
答案 0 :(得分:4)
您需要使用Java generics。
将ht
声明为LinkedHashMap<Integer, Foo>
,其中Foo
是您希望ht.get()
返回的任何数据类型。使用Map
界面会更好:
LinkedHashMap<Integer, Foo> ht = new LinkedHashMap<Integer, Foo>();
// or preferably
Map<Integer, Foo> ht = new LinkedHashMap<Integer, Foo>();
答案 1 :(得分:0)
ht是LinkedHashMap
,如果它只包含Integer
,则应将其声明为LinkedHashMap<Integer,Object>
。
如果将其声明为LinkedHashMap<Integer,Object>
,则会自动完成对int
的取消装箱。
(*)如果将其声明为LinkedHashMap<Integer,[actual-object-type]>
答案 2 :(得分:0)
必须是:for (Integer key : ht.keySet())...
LinkedHashMap<K, V>
其中K和V是对象,而不是原始(int,short ...)
答案 3 :(得分:-1)
使用Integer而不是int,它可能会起作用。 LinkedHashMap中的键必须是对象,而不是基本类型。