2

见下文,为什么 GUI 不显示 agent 属性中的 demandhist(左下角)?

在此处输入图像描述

4

1 回答 1

3

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

  • 创建 getter / setter 方法,将您的 List 作为 String 返回并分别接受 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 的存在意味着“不显示所有属性,只显示我注释的那些”。

于 2019-09-06T13:33:55.403 回答