Я создаю группу агентов, использующих около 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)
Если это невозможно, я буду искать и другие решения:
Может быть, есть что-топохож на отображение параметров для переменных.(поскольку переменные не будут показаны в качестве аргументов.
Перемещение всего населения после инициализации в новый класс агента только с требуемыми параметрами. (Главное здесь - сохранить созданные подключенияс другими классами агентов)
Я ценю любые другие предложения по этой проблеме. Заранее спасибо;
Возможное решение
Предложение Эми изящнона мой взгляд. Однако, это не сработало точно так, как предлагалось. При наборе: 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);