簡體   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