繁体   English   中英

在流口水中从父类访问子类属性

[英]Accessing Child class properties from parent class in 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;
    }
 }

流口水无法识别无法识别的事物。

如果您的Car类具有静态方法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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM