Если вы хотите расширить 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 (или новее), чтобы иметь возможность изменить скорость.