【发布时间】:2021-05-27 22:55:56
【问题描述】:
为什么地图的打印方法不起作用? 该方法应该接受所有泛型并打印它们。 它适用于列表、集合、队列,但地图出现问题。
public class Question6 {
@SuppressWarnings("unchecked")
static void print(@SuppressWarnings("rawtypes") Collection c) {
System.out.println(c.getClass());
c.forEach(System.out::println);
System.out.println();
}
public static void main(String[] args) {
List<Integer> l = new ArrayList<>();
l.add(1);
l.add(2);
print(l);
List<Dummy> ld = new ArrayList<Dummy>();
ld.add(new Dummy());
print(ld);
Map<Integer,Integer> m = new LinkedHashMap<Integer, Integer>();
m.put(1,1);
print(m); // gives error?
}
}
class Dummy{
}
【问题讨论】:
-
Map不是一个集合。 -
您的
print方法也是不必要的。只需使用System.out.print(),它就可以正常工作。 -
要打印课程内容,您只需在 bot 集合或地图上调用
toString()方法,它就会打印您的内容。 -
使用
Collection<?>代替原始类型。由于Map不是一个集合,你必须做出决定。您可以将m.entrySet()传递给该方法。或使用keySet()或values()。
标签: java generics collections compiler-errors hashmap