// 声明人 对象
declare Person
name : String
birthday : Long
address : Address
mobileList : List
end
这种写 List<String> 运行出错, 找不到这个lei'xing
定义泛型类:在Java中,你可以定义泛型类来表示具有参数化类型的对象。例如,你可以定义一个泛型类MyClass<T>
,其中T
表示类型参数。在Drools规则中,你可以使用这个泛型类作为规则的条件或动作。
使用泛型类型作为规则条件:在Drools规则中,你可以使用泛型类型作为规则条件的一部分。例如,假设你的泛型类MyClass<T>
中有一个属性value
,你可以编写规则条件如下:
rule "My Rule"
when
$obj: MyClass<T>(value > 0)
then
// 规则动作
end
在这个例子中,规则条件要求MyClass<T>
的value
属性大于0。
在规则动作中使用泛型类型:你可以在规则动作中使用泛型类型。例如,假设你的泛型类MyClass<T>
有一个方法doSomething(T value)
,你可以在规则动作中调用该方法:
rule "My Rule"
when
$obj: MyClass<T>()
then
$obj.doSomething($obj.getValue());
end
在这个例子中,规则动作调用MyClass<T>
对象的doSomething()
方法,并传递value
属性作为参数。
使用泛型类型的限制:在Drools规则中,你可以使用泛型类型的限制来约束规则条件。例如,假设你的泛型类MyClass<T>
要求T
是Number
的子类型,你可以编写规则条件如下:
rule "My Rule"
when
$obj: MyClass<T>(value > 0, T <: Number)
then
// 规则动作
end
在这个例子中,规则条件要求MyClass<T>
的value
属性大于0,并且T
是Number
的子类型。