我正在使用大约40个映射参数创建一组代理。这些参数仅用于总体初始化。但是,问题在于,在创建新代理时,这些参数中将需要许多参数,而实际上并不需要它们。只是为了让您了解它的外观如何。
add_households(int, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, boolean)
因此,我想知道是否有一种在不再需要后删除/隐藏这些参数的方法。看起来像这样很棒:
add_households(int, boolean)
如果不可能的话,我将要寻找的其他解决方案是:
也许有些类似于变量的参数映射。 (因为变量不会显示为参数。
在仅使用所需参数初始化到新的Agent类之后,移动整个总体。 (这里最主要的是保持与其他代理类的已创建连接)
感谢您对这个问题的其他建议。 先感谢您;
我认为,艾米的建议很优雅。但是,它不能完全按照建议的方式工作。输入时:objHousehold.initRuntimeParamters( set_age(5), set_p_HH_willing_to_change(true));
它引发错误,指出:
The method set_age(int) is undefined for the type Main.
The method set_p_HH_willing_to_change(boolen) is undefined for the type Main.
但是,通过更改小码,我只能通过键入以下内容来访问所需的参数:
Household objHousehold = add_households();
households(objHousehold.getIndex()).set_age(5);
households(objHousehold.getIndex()).set_p_HH_willing_to_change(true);
答案 0 :(得分:1)
您始终可以执行add_households(),它将使用默认参数。然后,您可以调用一个函数以仅设置您感兴趣的2。
Household objHousehold = add_households();
objHousehold.initRuntimeParamters( int, boolean );
在initRuntimeParameters中,使用set_parameterName(value)设置参数值。