GUI 不显示代理属性

GUI does not show agent attributes

见下文,为什么 GUI 不显示代理中的需求列表 属性(左下角)?

如果没有一些额外的注释,Repast 探测机制不会显示非原始 + String 类型。你可以做以下两件事之一

  • 创建 getter / setter 方法,将 return 您的列表作为字符串并分别接受字符串作为参数。后者将解析 String 并使用解析后的值更新列表。

  • 使用@ProbedProperty 注释并指定一个字符串转换器来执行从列表到字符串的转换。例如,

@ProbedProperty(usageName="list", displayName="A List", converter="repast.simphony.parameter.StringConverterFactory$StringStringConverter")
public List<Integer> getList() {
    return Arrays.asList(1, 2, 3, 4);
}

在这里,我使用 StringConverterFactory$StringStringConverter 进行转换。这仅适用于 getter,但不适用于 setter。如果您有 setter,则需要编写自己的 StringConverter 实现。

最后,如果您使用 ProbedProperty 注释,您可能需要为您希望显示的其他属性添加它。对于原语,您可以省略转换器。我认为 ProbedProperty 的存在意味着 "don't display all the properties, only the ones I've annotated".