Я пытаюсь создать правило на Drools. Мой текущий код:Drools Поиск Карта Значения
rule "Test Rule #1"
when
obj1 : MyObject ()
map : ArrayList (size < 1) from collect (HashMap (values (House (windows = 3)))) from obj1.getHouses()
then
// Do something
end
То, что я пытаюсь сделать: проверить, есть ли дома с 3-мя окнами в HashMap. Если нет // Do something
. Для этого я пытаюсь получить доступ к объекту obj1.getHouses(), который является HashMap < String, List < Дома >>. Затем я проверяю значения HashMap и отфильтровываю их для домов, имеющих 3 окна.
Но с этим кодом что-то не так. Я получаю эту ошибку:
Unable to Analyse Expression values (House (windows = 3)): java.lang.Class cannot be cast to org.mvel2.util.MethodStub]
Может кто-нибудь помочь? Спасибо заранее.
Как вы выглядите как HashMap? Этот тип синтаксиса доступен для значений карты [http://stackoverflow.com/a/9095266/3710490](http://stackoverflow.com/a/9095266/3710490) – Valijon
Моя карта: HashMap> , Но я не хочу искать конкретный ключ. Мне нужно выполнить поиск по всем LinkedLists карты. Эта ссылка показывает мне, как искать ключ. –
Можете ли вы опубликовать полный файл drools '.drl'? Кажется, что импорт некоторых классов неверен ... – Valijon