Anylogic 遍历项目树中的对象

Anylogic 遍历项目树中的对象,anylogic,Anylogic,正如标题所说:我想知道,是否有可能遍历AnyLogic项目的对象树 如果我提供更多我想做的事情的信息,可能会有所帮助。以以下项目树为例: 我想检查模型中的每个延迟对象,不管它当前是否包含代理。一种可能是将所有延迟对象手动添加到集合对象,并遍历集合的元素。然而,这种方法会导致大量的手工工作,因为我需要对其他对象类型执行类似的请求。在我看来,最方便的解决方案是遍历项目树,并用“isinstanceof”标识我要分析的对象 是否有人知道一种解决方案或另一种方法,它需要更少的努力 致以最良好的祝愿 Se

正如标题所说:我想知道,是否有可能遍历AnyLogic项目的对象树

如果我提供更多我想做的事情的信息,可能会有所帮助。以以下项目树为例:

我想检查模型中的每个延迟对象,不管它当前是否包含代理。一种可能是将所有延迟对象手动添加到集合对象,并遍历集合的元素。然而,这种方法会导致大量的手工工作,因为我需要对其他对象类型执行类似的请求。在我看来,最方便的解决方案是遍历项目树,并用“isinstanceof”标识我要分析的对象

是否有人知道一种解决方案或另一种方法,它需要更少的努力

致以最良好的祝愿


Sebastian

您可以在Main中的所有对象中循环执行以下操作:

对于对象currObject:agentGetRotatAgent.getEmbeddedObjects{ 如果对象实例延迟{ //你发现了一个延迟对象 }
}

谢谢,我还有两个问题:1我对Java非常不熟悉,认为只有使用点语法(即object.property)才能访问对象的属性和方法。这是我第一次看到这样的代理。代理和getRootAgent之间的括号和缺少的点让我感到困惑。你能给我解释一下,基本概念是如何被称为的吗?我想知道更多。2通过您的方法,我能够识别所有延迟对象。但是,似乎无法访问延迟的属性和属性,例如,使用System.out.printcurrObject.getName打印对象的名称。出现一条错误消息,指出类型对象的方法getName未定义。你知道如何解决这个问题吗?re 1:这叫做类型转换,普通Java功能。re 2:应用类型转换:类似DelaycurrObject.getName的东西应该可以工作