我有接口CargoTransport和2个类,Truck和CargoShip实现它。我想创建 LinkedList,我只能在其中放置这些类。
我尝试这样做:
public class CargoDeliveryBase {
private LinkedList<? extends CargoTransport> transports;
CargoDeliveryBase(LinkedList<? extends CargoTransport> t) {
transports.add(t.get(0));
// or
transport.add(new Truck());
}
}
编译器告诉我"所需类型:捕获?在这种情况下,扩展了货物运输
你应该简单地使用LinkedList<CargoTransport>
感谢用户,他们在评论中回答
创建货物运输的超级实现
public interface Cargo {}
public interface CargoTransport extends Cargo {}
这是您的要求:
import java.util.LinkedList;
public class CargoDeliveryBase {
private LinkedList<Cargo> transports;
CargoDeliveryBase(LinkedList<? extends CargoTransport> t) {
transports = new LinkedList<Cargo>();
transports.add(new CargoShip());
// or
transports.add(new Truck());
// or
transport.add(t.get(0));
}
}