在 drools 中从父 class 访问子 class 属性
Accessing Child class properties from parent class in drools
我有一个父项 class Vehicle() 在 drools xls 文件中传递我如何访问子项的属性 class Car()?
我试过转换它,但流口水无法识别转换方法
(Car.cast(vehicle)).isManual()
laune 根据 OP 的评论编辑:
我使用的 drools 版本是 4.0.7
import workspace.sampleproj.domain.*
function boolean checkIfCarManual(Vehicle vehicle){
if (vehicle.isCar() == true){
if((Car.cast(vehicle).isManual() == true){
return true;
} else {
return false;
}
} else {
return false;
}
}
Drools 无法识别无法识别的内容。
如果你的classCar
有静态方法cast(Vehicle v)
,应该可以识别。 (如果没有这样的方法,你会得到一个错误。)
class Car extends Vehicle {
public static Car cast( Vehicle v ){ return (Car)v; }
...
}
也许您尝试使用 java.lang.Class
的 cast
方法?如果是这样,你将不得不写
(Car.class.cast(vehicle)).isManual()
稍后 而且您没有理由不能使用简单的转换:
function boolean checkIfCarManual(Vehicle vehicle){
return vehicle.isCar() && ((Car)vehicle).isManual();
}
我有一个父项 class Vehicle() 在 drools xls 文件中传递我如何访问子项的属性 class Car()?
我试过转换它,但流口水无法识别转换方法
(Car.cast(vehicle)).isManual()
laune 根据 OP 的评论编辑: 我使用的 drools 版本是 4.0.7
import workspace.sampleproj.domain.*
function boolean checkIfCarManual(Vehicle vehicle){
if (vehicle.isCar() == true){
if((Car.cast(vehicle).isManual() == true){
return true;
} else {
return false;
}
} else {
return false;
}
}
Drools 无法识别无法识别的内容。
如果你的classCar
有静态方法cast(Vehicle v)
,应该可以识别。 (如果没有这样的方法,你会得到一个错误。)
class Car extends Vehicle {
public static Car cast( Vehicle v ){ return (Car)v; }
...
}
也许您尝试使用 java.lang.Class
的 cast
方法?如果是这样,你将不得不写
(Car.class.cast(vehicle)).isManual()
稍后 而且您没有理由不能使用简单的转换:
function boolean checkIfCarManual(Vehicle vehicle){
return vehicle.isCar() && ((Car)vehicle).isManual();
}