如何使LinkedlList只接受选定的类



我有接口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));
}
}

相关内容

  • 没有找到相关文章