有没有办法将具体类型的列表/地图发送到接收接口列表/地图的方法?
e.g。
(Toyota extends Car
和Car implements ICar
)
我想打电话
private static void doSomething(Map<String, ICar> cars) {}
使用
Map<String, Toyota> toyotas = new HashMap<>();
doSomething0(toyotas);
答案 0 :(得分:1)
您可以使用类型边界:
private static void doSomething(Map<String, ? extends ICar> cars) {}
示例:
public static void doSomething (Map<String,? extends Number> numMap)
{
for (Number n : numMap.values ())
System.out.println (n);
}
public static void main (String[] args)
{
Map<String,Integer> intMap = new HashMap<String, Integer> ();
intMap.put("two",2);
intMap.put("three",3);
doSomething (intMap);
}
答案 1 :(得分:1)
将您的声明更改为:
private static void doSomething(Map<String, ? extends ICar> cars) {}
这意味着除了扩展ICar
的所有内容。