Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—为什么将具体实现作为参数发送到泛型接口不会编译?_Java_Generics - Fatal编程技术网

Java—为什么将具体实现作为参数发送到泛型接口不会编译?

Java—为什么将具体实现作为参数发送到泛型接口不会编译?,java,generics,Java,Generics,为什么doSomething2()和doSomething3()不在Java中编译 (丰田扩展了汽车和汽车实现了ICar) publicstaticvoidmain(字符串[]args){ Map toyotas=新HashMap(); doSomething0(丰田); doSomething1(丰田); doSomething2(丰田); doSomething3(丰田); } 私有静态void doSomething0(映射车){} 私有静态void doSomething1(映射车){}

为什么
doSomething2()
doSomething3()
不在Java中编译

丰田扩展了汽车
汽车实现了ICar

publicstaticvoidmain(字符串[]args){
Map toyotas=新HashMap();
doSomething0(丰田);
doSomething1(丰田);
doSomething2(丰田);
doSomething3(丰田);
}
私有静态void doSomething0(映射车){}
私有静态void doSomething1(映射车){}
私有静态void doSomething2(映射车){}
专用静态无效doSomething3(地图车){}
因为:

public static void main(String[] args) {
    Map<String, Toyota> toyotas = new HashMap<>();
    doSomething4(toyotas);

    Toyota t = toyotas.get("hello"); // boom
}

private static void doSomething4(Map<String, Car> cars) {
    cars.put("Hello", new Honda());
}
publicstaticvoidmain(字符串[]args){
Map toyotas=新HashMap();
doSomething4(丰田);
丰田t=toyotas.get(“你好”);//轰
}
私家车静态空位doSomething4(地图车){
cars.put(“你好”,新本田());
}
Map的可能重复项显然不是
Map
@AlexShesterov,但问题是询问相反的情况。
public static void main(String[] args) {
    Map<String, Toyota> toyotas = new HashMap<>();
    doSomething4(toyotas);

    Toyota t = toyotas.get("hello"); // boom
}

private static void doSomething4(Map<String, Car> cars) {
    cars.put("Hello", new Honda());
}