0

我想知道initRoadPDP方法内部的时间(从Depot类继承)。如果不将Simulator对象作为字段插入到我的班级中,这是否可行?

class MyDepot extends Depot {

  @Override
  public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) {
    // how to know the current time?
  }
}
4

1 回答 1

0

initRoadPDP(..)方法在 的初始化阶段被调用MyDepot。这发生在将其Depot添加到模拟器时,对于仓库来说,这通常是在模拟时间开始之前。

获得时间进度通知的标准方法是实现TickListener接口。除了跟踪时间之外,此接口还允许您使用接收到的TimeLapse对象来执行需要时间的操作。但是,由于收到的第一个报价总是在initRoadPDP对该方法的任何调用之后,因此可能不适合这种情况。

无论如何,使用的代码TickListener如下所示:

class MyDepot extends Depot implements TickListener {
    public MyDepot(Point position) {
        super(position);
    }

    @Override
    public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) {
        // how to know the current time?
    }

    @Override
    public void tick(TimeLapse timeLapse) {
        timeLapse.getTime(); // current time
    }

    @Override
    public void afterTick(TimeLapse timeLapse) {}
}
于 2016-05-02T09:13:12.603 回答