我有一个非常奇怪的问题。我有这个包含两个规则的Procedure对象。现在我想用for循环来循环这些规则并返回1规则。但我总是无效。看起来他正在跳过if语句并直接转到我的返回null部分。
第一条规则的名称是年龄,另一条规则的名称是意外。我在这里已经包含了这个方法。
我的日志回馈:
rulename:'年龄'和变量:'意外'并且是真的吗?:'false' rulename:'意外'和变量:'意外'并且是真的吗?:'true'
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());
然后它突然起作用。
答案 0 :(得分:0)
你能试试吗?
if(rule.getName().equalsIgnoreCase(ruleName))
{
Log.d("debug", "rulename: '" + rule.getName() + "' and variable: '"+ruleName+"' and is true ?: '"+rule.getName().equalsIgnoreCase(ruleName)+"'");
return rule;
}
答案 1 :(得分:0)
我改变了:
Rule makeRule = RuleFactory.getNewRuleClassNameInstance(this.searchRule(ref2.getName()).getClass().getSimpleName());
为:
Rule foundRule = this.searchRule(ref2.getName());
Rule makeRule = RuleFactory.getNewRuleClassNameInstance(foundRule.getClass().getSimpleName());
然后它似乎有效。