You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AnyLogic中设置车辆偏好速度?动态拥堵模拟报错求助

解决Car类中setPreferredSpeed(double)方法未定义的报错

问题本质

报错明确指出Car类不存在setPreferredSpeed(double)方法,原因是你的Car类没有定义该方法,或者你调用的方法名与类中实际存在的方法名不匹配。


具体解决步骤

1. 在Car类中添加setPreferredSpeed方法

打开你的Car类定义文件,添加一个接收double类型参数的setPreferredSpeed setter方法,示例如下:

public class Car {
    // 假设类中已有存储偏好速度的属性
    private double preferredSpeed;

    // 你已实现的getSpeed方法(根据代码推测)
    public double getSpeed() {
        // 这里返回实际的车辆速度,比如当前行驶速度或偏好速度
        return this.preferredSpeed;
    }

    // 添加setPreferredSpeed方法
    public void setPreferredSpeed(double adjustedSpeed) {
        this.preferredSpeed = adjustedSpeed;
        // 可选:添加速度范围校验,比如确保速度非负
        // this.preferredSpeed = Math.max(0.0, adjustedSpeed);
    }
}

2. 检查是否调用了错误的方法名

如果Car类中已经存在类似的速度设置方法,但名称不同(比如setSpeed、setDesiredSpeed),直接将代码中的setPreferredSpeed替换为正确的方法名即可。例如:

// 假设Car类有setSpeed方法
car.setSpeed(adjustedSpeed);

额外优化:修复循环逻辑冗余

你的代码存在逻辑问题:增强for循环已经遍历每一辆车,但你又重新随机获取了一个Car实例,导致大部分遍历的车辆被跳过,仅修改随机选中的那一辆。根据你的需求调整代码:

需求1:随机修改一辆车的速度

if (!cars.isEmpty()) {
    int randomIndex = uniform_discr(0, cars.size() - 1);
    Car car = cars.get(randomIndex);
    double currentSpeed = car.getSpeed();
    double minCongestionFactor = 0.8;
    double maxCongestionFactor = 1.0;
    double randomCongestionFactor = minCongestionFactor + Math.random() * (maxCongestionFactor - minCongestionFactor);
    double adjustedSpeed = currentSpeed * randomCongestionFactor;
    // 使用正确的方法设置速度
    car.setPreferredSpeed(adjustedSpeed);
}

需求2:修改所有车辆的速度

for (Car car : cars) {
    double currentSpeed = car.getSpeed();
    double minCongestionFactor = 0.8;
    double maxCongestionFactor = 1.0;
    double randomCongestionFactor = minCongestionFactor + Math.random() * (maxCongestionFactor - minCongestionFactor);
    double adjustedSpeed = currentSpeed * randomCongestionFactor;
    // 使用正确的方法设置速度
    car.setPreferredSpeed(adjustedSpeed);
}

内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 16:56:01