我有一个非常奇怪的问题。我有这个包含两个规则的过程对象。现在我想用 for 循环循环出这些规则并返回 1 条规则。但我总是得到空值。看起来他正在跳过 if 语句并直接转到我的 return null 部分。
第一条规则的名称是年龄,另一条规则的名称是意外。我在这里包含了该方法。
我的日志正在回馈:
规则名称:'年龄'和变量:'事故'并且是真的?:'假'
规则名称:“事故”和变量:“事故”并且为真?:“真”
private Rule searchRule(String ruleName)
{
List<Rule> test = this.procedureObject.getRules();
for(Rule rule : test)
{
Log.d("debug", "rulename: '" + rule.getName() + "' and variable: '"+ruleName+"' and is true ?: '"+rule.getName().equalsIgnoreCase(ruleName)+"'");
if(rule.getName().equalsIgnoreCase(ruleName))
{
return rule;
}
}
return null;
}
编辑:它现在工作。
我只是在调用代码中更改了它:
Rule makeRule = RuleFactory.getNewRuleClassNameInstance(this.searchRule(ref2.getName()).getClass().getSimpleName());
到:
Rule foundRule = this.searchRule(ref2.getName());
Rule makeRule = RuleFactory.getNewRuleClassNameInstance(foundRule.getClass().getSimpleName());
然后它突然起作用了。