Java新手,尝试编写基本流量模拟,其中包含Intersection类和SimEngine(事件列表)类。
我的Intersection类有一个名为Arrival()的方法,表示汽车已到达交叉路口。作为该方法的一部分,我想在3秒后使用SimEngine中的schedule()方法为时间戳安排该车的出发。
schedule()方法有四个参数:(我们正在安排的内容,车辆ID,交叉点ID,时间戳)。我的问题是关于传递交点id(这个模拟有多个交叉点)。如果我不知道Intersection对象的引用变量的名称,我该如何将它传递给另一个函数?
答案 0 :(得分:1)
您需要首先识别系统中的车辆 - 一种常见的选择,尤其是在数据库驱动的应用程序中,是使用整数值。因此,请为每辆车附加一个唯一标识符,然后根据您预见的实例数量Integer
或Long
引用它们。
如果您只保留内存中的数据,则可以从Map<Integer,Vehicle>
存储和检索车辆。在这里采取额外的线程安全预防措施,ConcurrentHashMap
是一个不错的选择。