为什么地图的打印方法不起作用?该方法应接受所有泛型并打印它们。它适用于列表,集合,队列,但是在地图中出现问题。
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
不是Collection
。您可以print
像这样调用您的方法:
print(map.entrySet());
// or
print(map.keys());
// or
print(map.values());
或按如下方式重载它:
static void print(Collection<?> c) {
System.out.println(c.getClass());
c.forEach(System.out::println);
System.out.println();
}
static void print(Map<?, ?> map) {
System.out.println(map.getClass());
map.entrySet().forEach(System.out::println);
System.out.println();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句