Drools规则表达式:访问嵌套类数据成员 [英] Drools Rule Expression : Access Nested class data member

查看:69
本文介绍了Drools规则表达式:访问嵌套类数据成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的课程的结构:

Below is the structure of my classes:

public class Address {
                private String street;
        private int phone;
        public void setStreet(String s){street = s;}
        public void setPhone(int p){phone = p;}
        public String getStreet(String s){return street;}
        public int getPhone(){  return phone;   }
}
public class Borrower {
    Address adr = new Address();
    public void setAddress(String s, int p) {
        adr.setStreet(s);
        adr.setPhone(p);
    }   
    public Address getAddress() {   return adr; }   
}

我正在使用Drools Expression:-

Drools Expression I am using :-

rule "Nested Address"
    salience -10    
    when
        $bo : Borrower(Address.street.equals("USA") && Address.phone != 717)
        $loanApp : LoanApplication()        
    then 
        $loanApp.addFeedbackMessage(FeedbackMessages.LOCATION_NOT_US);  
        System.out.println("Nested Address  " + $bo.adr.street + ", Nested Phone " + $bo.adr.phone);
end

上面给了我错误:

Unable to Analyse Expression Address.street.equals("USA"):

有人可以告诉我我在做什么错吗?

Can someone please tell me what I am doing wrong?

推荐答案

您应该使用属性名称"address"(注意小写字母a),而不要使用Address类.所以:

you should be using the property name "address" (notice the lowercase a) and not the class Address. so:

rule "Nested Address"
    salience -10    
    when
        $bo : Borrower(address.street.equals("USA") && address.phone != 717)
        $loanApp : LoanApplication()        
    then 
        $loanApp.addFeedbackMessage(FeedbackMessages.LOCATION_NOT_US);  
        System.out.println("Nested Address  " + $bo.adr.street + ", Nested Phone " + $bo.adr.phone);
end

这篇关于Drools规则表达式:访问嵌套类数据成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆