У меня проблема с моим элементом SelectOutput. Тип ввода - «Клиент», и в коде Java это правильно отражено с параметром функции «агент», имеющим тип «Клиент». Однако, когда я обращаюсь к этому параметру «агента», это уже не тип «Клиент», а «StockItem» - еще один из моих типов агентов, который не участвует в этой блок-схеме.
Сообщение об ошибке в комментарии в коде ниже:
private boolean _hasBought_condition_xjal( final com.anylogic.libraries.processmodeling.SelectOutput<Customer> self, Customer agent ) {
boolean _value;
_value = (Customer)(agent).buyingItem!=null; // <-- Error here "Description: Cannot cast from StockItem to Customer. Location: CW2_shop_2/Shop/hasBought - SelectOutput"
return _value;
}
Это имеет еще меньше смысла, потому что точно такое же приведение работает в поле «При вводе» под ним, вот настройка SelectOutput:
Мне нужно получить доступ к параметру агента клиента, обращающемуся к нему с помощью «agent.buyingItem», выдает ошибку, что «тип StockItem не имеет параметра buyItem», что побудило меня попробовать применить это первое, как вы видите выше. Я уже пробовал перезапустить AnyLogi c и перестроить.
Заранее спасибо.
РЕДАКТИРОВАТЬ: После того, как я обнаружил, что преобразование типа в Customer и его удаление мне не нужно, я все же обнаружил, что значения между «Condition» и «onEnter» различны. Я добавил много строк отладки, и вы можете увидеть результат на изображении ниже. Значения «agent.buyingItem! = Null», кажется, меняются. «notNull: true» выводится, но затем агент уходит через false независимо от значения.
buyItem - это переменная типа StockItem, которая является пустым агентом.
![enter image description here](https://i.imgur.com/iG8Ne8A.png)