我有一个非常简单的测试用例,如果玩家第一次注册,就会奖励他。当我运行测试用例时出现错误。
Message [id=1, kieBase=defaultKieBase, level=ERROR, path=player.drl, line=10, column=0
text=Unable to Analyse Expression isNew == true:
[Error: no such identifier: isNew]
[Near : {... isNew == true ....}]
^ [Line: 10, Column: 8]]
我检查了模型类是否已正确声明变量,并且 .drl 文件也引用了相同的变量。
Player.drl
import com.xyz.model.business.objects.Player;
import com.xyz.rules.domain.Points;
import java.util.*;
global com.xyz.rules.domain.Points points;
dialect "mvel"
rule "Reward Point if User registered"
when
playerInstance:Player(isNew == true);
then
points.setPoints(1000);
end
模型类
package com.xyz.model.business.objects;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Builder(toBuilder = true)
public class Player {
private String userId;
private String name;
private int age;
private boolean isNew;
}
最佳答案
我看到lombok正在生成方法,并且 boolean 方法如下所示
public boolean isNew() {
return isNew;
}
public void setNew(boolean aNew) {
isNew = aNew;
}
但是当我明确添加 get/set 时,流口水就明白了。
getXXX() & setXXX()
所以不是自动生成的。我明确地为 boolean 值设置了 get 和 set 瞧
public boolean getIsNew() {
return isNew;
}
public void setNew(boolean aNew) {
isNew = aNew;
}
关于java - Jboss 流口水抛出错误无法分析 boolean 变量的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430882/