2

有没有办法为车辆提供动态速度(例如取决于车辆有效载荷)?

该类VehicleDTO是不可变且不可扩展的,但在PDPModel基类及其所有子类中是必需的。

4

1 回答 1

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(或更高版本)才能覆盖速度。

于 2018-05-07T05:18:58.800 回答