(Обязательный отказ от ответственности для новичков)
Я пытаюсь написать правило, которое срабатывает всякий раз, когда объект в списке (scala) соответствует условию. Проблема здесь в том, что список на самом деле является Option(List[TypeA])... (Кроме того, я понимаю, что не рекомендуется хранить списки в рабочей памяти, но я не могу поступить иначе, учитывая обстоятельства)
Классы case, которые я использую, имеют следующую структуру:
TypeA {
arg1 : Option[List[TypeB]]
}
с участием
TypeB {
value : String
}
Я написал правило, подобное этому:
when
$a : TypeA($l : arg1)
$b : TypeB() from $l.get()
then
System.out.println($b)
Я пробовал это без ".get()" только для получения объекта типа Some().
Используя ".get()", мне удалось вернуть содержимое Option, но оно, похоже, не соответствует ожидаемому типу (List[TypeB]). Вместо этого тип возвращаемого значения кажется scala.collection.immutable.$colon$colon.
Есть идеи, в чем проблема? И есть ли какой-нибудь правильный способ обработки параметров в Drools?
Option
? Пытались ли вы увидеть тип, который вы получите обратно с этим? Мне было бы очень интересно узнать тип, который возвращается. Вы можете это сделать? - person M.K.   schedule 10.02.2015