Drools不能在DRL中为函数的参数使用泛型类型

时间:2018-12-10 16:43:53

标签: java drools

我正在DRL上定义下一个功能

function void embargarMultiplesCuentasJudicial(ArrayList<Cuenta> cuentas, Embargo embargo,BigDecimal montoTotal ,BigDecimal limite) {
    //BODY
}

我收到此错误:

Unable to resolve type ArrayList<Cuenta> while building function. java.lang.ClassNotFoundException: Unable to find class 'ArrayList<Cuenta>' ]]

但是我要在顶部文件中导入ArrayList和Cuenta

import modelo.Cuenta;
import modelo.Embargo;
import java.util.ArrayList;

2 个答案:

答案 0 :(得分:1)

似乎您无需提及ArrayList在参数中使用的内容。以下示例对我来说很好(这是一个自定义对象的ArrayList):

function testFunction(ArrayList al)
{
    System.err.println("Called a function with the ArrayList : " + java.util.Arrays.toString(al.toArray()));
}

答案 1 :(得分:0)

解析器在具有泛型类型的参数上失败,但是可以省略类型并强制转换为方法的主体。

function void embargarMultiplesCuentasJudicial(List cuentas, Embargo embargo,BigDecimal montoTotal ,BigDecimal limite) {

    List<Cuenta> typedList = (List<Cuenta>) cuentas;

}