Java 有没有办法将具体类型的列表/映射发送给接收接口列表/映射的方法?

Java 有没有办法将具体类型的列表/映射发送给接收接口列表/映射的方法?,java,generics,Java,Generics,有没有办法将具体类型的列表/映射发送给接收接口列表/映射的方法 e、 g。 (丰田扩展了汽车和汽车实现了ICar) 我想打电话 private static void doSomething(Map<String, ICar> cars) {} private static void doSomething(地图车){} 使用 Map<String, Toyota> toyotas = new HashMap<>(); doSomething0(toyot

有没有办法将具体类型的列表/映射发送给接收接口列表/映射的方法

e、 g。 (
丰田扩展了汽车
汽车实现了ICar

我想打电话

private static void doSomething(Map<String, ICar> cars) {}
private static void doSomething(地图车){}
使用

Map<String, Toyota> toyotas = new HashMap<>();
doSomething0(toyotas);
Map toyotas=new HashMap();
doSomething0(丰田);

您可以使用类型边界:

private static void doSomething(Map<String, ? extends ICar> cars) {}
private static void doSomething(地图车){}
例如:

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);
}
public static void doSomething(映射numMap)
{
对于(编号n:numMap.values())
System.out.println(n);
}
公共静态void main(字符串[]args)
{
Map intMap=newhashmap();
intMap.put(“两个”,2);
intMap.put(“三”,3);
剂量测定法(intMap);
}

将您的声明更改为:

private static void doSomething(Map<String, ? extends ICar> cars) {}
private static void doSomething(地图车){}

这意味着接受扩展ICar的所有内容。不,你不能,你问的基本上是一样的:这里:。答案不会改变。