java - Drools 规则表达式 : Access Nested class data member

标签 java drools

下面是我的类的结构:

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 表达式:-

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"):

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

最佳答案

您应该使用属性名称“address”(注意小写 a)而不是类 Address。所以:

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

关于java - Drools 规则表达式 : Access Nested class data member,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347545/

相关文章:

java - ArrayList 在运行方法后不会返回修改后的值

drools - OptaPlanner : I tried to print out the justificationList of ConstraintMatch, 但得到了不是我的域类的 SubnetworkTuple 对象

java - @parameters 方法在@beforeclass 方法之前执行

Java Hadoop MapReduce 多个键值

java - NoClassDefFoundError : NestedIOException when running tests with Spring Boot 3. 0.0-M4/Spring 6.0.0-M5

java - DROOLS中 'package'关键字有什么用?

java - 在我的 java 程序运行时检测规则更改(我使用 Guvnor 编辑)

drools - Drool 无法正确对数字进行排序

java - 我可以创建一个从另一个规则文件导入规则的规则文件吗?

java - 将 ZoneId 和时间戳转换为 java 8 中的格式化日期字符串,考虑夏令时