1
在了解Java通配符时,我发现自己误解了这个主题,所以。
Java通配符写入和读取权限
Upper Bound
让我只读泛型类的成员Lower Bound
让我写信给成员,但只有当它是类型的下限。
List< ? extends Vehicle > vehicleList = new ArrayList<Car>();
vehicleList.add(new Scooter()); // Compile-time Error!
编译器不会让我们写任何东西在这里,因为他不能保证该列表的元素将是正确的类型(稍后读)。
List< ? super Car > carList = new ArrayList<Car>();<br>
carList.add(new Car()); // Ok
carList.add(new Vehicle()); // Compile-time Error <br>
这是因为编译器可以确保最低类型始终是汽车。然后我们只能通过它汽车。
对吗?
是;这被称为协同/反方差。 – SLaks