java - List到底是什么以及何时使用它?
问题描述
作为一名 Java 初学者,我已经阅读了几篇关于List<? extends MyType>
SO 的文章和一些答案,但看不到任何解释List<? extends MyType>
究竟是什么以及何时使用它?你能澄清一下这个问题吗?
解决方案
这意味着您可以初始化您的列表,任何类型的列表都可以扩展 MyType。
这里有一个 JUnit 向您展示:
public class test {
@Test
public void test() {
List<? extends Vehicle> vehicles_bike;
List<? extends Vehicle> vehicles_car;
vehicles_bike = completeWithBike();
//We get the only one element, and ensure it's type is bike
Vehicle bike = vehicles_bike.get(0);
assertTrue(bike.getType().equals("bike"));
//We get the only one element, and ensure it's type is car
vehicles_car = completeWithCar();
Vehicle car = vehicles_car.get(0);
assertTrue(car.getType().equals("car"));
}
private List<? extends Vehicle> completeWithCar() {
List<Car> cars = new ArrayList<>();
cars.add(new Car());
return cars;
}
private List<? extends Vehicle> completeWithBike() {
List<Bike> bikes = new ArrayList<>();
bikes.add(new Bike());
return bikes;
}
class Vehicle {
private String type;
public Vehicle(String type) {
this.type = type;
}
public String getType() {
return type;
}
}
class Car extends Vehicle {
public Car() {
super("car");
}
}
class Bike extends Vehicle {
public Bike() {
super("bike");
}
}
}
推荐阅读
- r - 预处理函数 R
- java - 安装 WindowBuilder 插件后确保 Content Assist 的问题
- c - 为什么我不能用 printf 和 scanf 读写套接字?
- performance - Julia - 如何捕捉 UnitRanges 并防止糟糕的类型性能
- python - 从熊猫日期范围功能中删除时间
- scala - Scala Char 自动转换为 Integer
- python - 第 51 行:TypeError:列表索引必须是整数,而不是浮点数有什么问题请帮助我
- c# - 使用来自 c# 控制台的参数打印 SSRS .rdl 报告
- javascript - Bootstrap 5 选项卡窗格无法正确使用 flexbox
- javascript - 我不断收到此类型错误:无法读取未定义的属性“地图”