有没有办法为车辆提供动态速度(例如取决于车辆有效载荷)?
该类VehicleDTO
是不可变且不可扩展的,但在PDPModel
基类及其所有子类中是必需的。
如果你想扩展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(或更高版本)才能覆盖速度。