创建一个通用方法 Print,它将接受所有类型的集合
Create a generic method Print which will accept all type of collections to It
为什么地图的打印方法不起作用?
该方法应该接受所有泛型并打印它们。
它适用于列表、集合、队列但问题出现在映射中。
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();
}
为什么地图的打印方法不起作用? 该方法应该接受所有泛型并打印它们。 它适用于列表、集合、队列但问题出现在映射中。
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();
}