在 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.Classcast 方法?如果是这样,你将不得不写

(Car.class.cast(vehicle)).isManual()

稍后 而且您没有理由不能使用简单的转换:

function boolean checkIfCarManual(Vehicle vehicle){
    return vehicle.isCar() && ((Car)vehicle).isManual();
}