在drools中从父类访问Child类属性

时间:2016-03-02 05:34:25

标签: java drools

我在drools xls文件中传递了父类Vehicle()如何访问子类Car()的属性?

我已经尝试过它但它流口水不能识别方法转换

(Car.cast(vehicle)).isManual()
来自OP评论的

来自laune :     我正在使用的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;
    }
 }

1 个答案:

答案 0 :(得分:1)

Drools无法识别无法识别的内容。

如果您的班级Car有静态方法cast(Vehicle v),则应该识别它。 (如果没有这样的方法,你会收到错误。)

class Car extends Vehicle {
    public static Car cast( Vehicle v ){ return (Car)v; }
    ...
}

也许您尝试使用cast的{​​{1}}方法?如果是这样,你必须写

java.lang.Class

稍后并且您没有理由不能使用简单的演员:

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