2

我有一个非常奇怪的问题。我有这个包含两个规则的过程对象。现在我想用 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());

然后它突然起作用了。

4

2 回答 2

0

你能试试这个吗?

if(rule.getName().equalsIgnoreCase(ruleName))
{
  Log.d("debug", "rulename: '" + rule.getName() + "' and variable: '"+ruleName+"' and is true ?: '"+rule.getName().equalsIgnoreCase(ruleName)+"'");
  return rule;
}
于 2012-04-24T06:02:00.240 回答
0

我变了:

Rule makeRule = RuleFactory.getNewRuleClassNameInstance(this.searchRule(ref2.getName()).getClass().getSimpleName());

到:

Rule foundRule = this.searchRule(ref2.getName());
Rule makeRule = RuleFactory.getNewRuleClassNameInstance(foundRule.getClass().getSimpleName());

然后它似乎起作用了。

于 2012-05-14T09:56:49.063 回答