Как вызвать тип агента для пользовательского блока? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть пользовательский блок, которому требуется информация о параметрах и переменных от агента, проходящего через него. Я хотел бы разработать этот блок для использования с различными типами агентов. Как создать раскрывающийся список всех доступных типов агентов в текущей модели, как в других встроенных блоках? Я предполагаю, что это параметр с внутренним значением, но просто не уверен в типе параметра, методе извлечения типов агентов и т. Д. c. Смотри картинку ниже:

enter image description here

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Вы используете универсальные c параметры (для типа агента, в котором определен ваш пользовательский блок), как описано в этом разделе справки: AnyLogi c Справка> Параметры, Переменные, Коллекции> Параметры> Generi c Параметры .

Задав параметризованному типу метку «Тип агента:» (вместо значения по умолчанию «Параметр Generi c:»), вы также можете сделать его более похожим, как в Блоки AnyLogi c.

(Основное различие заключается в том, что он отсутствует в разделе «Дополнительные свойства».)

Просто не забывайте использовать любой тип, который вы называете своим generi c (например, , T) как тип агента для блоков (или другого кода) внутри вашего пользовательского блока (для тех областей, где вам нужно видеть его как этот тип вместо универсального c агента).

Для этого используется Java generics под обложками, поэтому существует некоторый специфический синтаксис c Java, например T extends Agent, для детализации параметра типа (что просто означает, что generi c тип T является некоторым подклассом (подтип) Агента).

1 голос
/ 04 февраля 2020

Вы используете приведение типа, как показано ниже. Обратите внимание, что параметр «Тип агента» должен оставаться по умолчанию (и в большинстве случаев c) «Агент»

enter image description here

...