2

由于某种原因,当我使用@ScheduledMethod 时,我的方法没有被调用。不知道有什么问题,因为我以前使用过它,一切都很好。

这是代码:

import repast.simphony.engine.schedule.ScheduledMethod;

public class WindGen {

private double power;

@ScheduledMethod(start = 1, interval = 1, priority = 2)
private void generatePower() {

    int t = SystemOperator.getT();

    power = 20 * Math.sin(Math.toRadians(t * 360 / 48) + 30);

}

public double getPower() {
    return power;
}
}

在此先感谢,迪娜。

4

2 回答 2

2

因为您的方法是私有的。您需要将其更改为公开才能使其正常工作。

于 2017-04-25T14:38:05.800 回答
0

@ScheduledMethod 有一个类似的问题:它根本没有执行我的方法。

但是,我确实通过以不同的方式安排方法来运行它,它可以按如下方式查找您:

ISchedule schedule = RunEnvironment.getInstance().getCurrentSchedule();
ScheduleParameters  generate = ScheduleParameters.createRepeating(start = 1, interval = 1, priority = 2);
schedule.schedule(generate , this ,"generatePower");

我建议您尝试在最开始和(可能)在同一个类中执行此代码片段一次。

您将在Repast Simphony 常见问题解答中找到有关日程安排的更多信息 。

希望它有帮助,索本

于 2015-10-07T09:14:00.657 回答