有没有办法为车辆提供动态速度(例如,取决于车辆有效载荷)?
VehicleDTO
类是不可变的,不可扩展,但在PDPModel
基类及其所有子类中都是必需的。
答案 0 :(得分:0)
如果你想扩展VehicleDTO
,你可以通过合成来实现(因为你不应该从值对象继承):
@AutoValue
abstract class MyVehicleDTO {
public abstract VehicleDTO getVehicleDto();
// add more properties
}
上面的示例使用AutoValue创建值对象,但这不是必需的。您可以使用此值对象来定义自定义车辆,如下所示:
public class MyVehicle extends Vehicle {
public MyVehicle(MyVehicleDTO vehicleDto) {
super(vehicleDto.getVehicleDto());
}
@Override
public double getSpeed() {
// change the following line to have a dynamic speed
return dto.getSpeed();
}
@Override
protected void tickImpl(TimeLapse time) {}
}
通过创建自己的Vehicle
,您可以动态更改速度。
注意:确保您使用RinSim v4.4.4(或更高版本)来覆盖速度。