私は非常に奇妙な問題を抱えています。2 つのルールを含むこの Procedure オブジェクトを取得しました。ここで、for ループを使用してこれらのルールをループアウトし、1 つのルールを取得したいと考えました。しかし、私は常にnullになります。彼はifステートメントをスキップしているようで、直接私のreturn null部分に行きます。
最初のルールの名前は年齢で、もう 1 つのルールの名前は事故です。ここにメソッドを含めました。
私のログは戻ってきます:
rulename: 'age' and variable: 'accidents' and is true ?: 'false'
rulename: 'accidents' and variable: 'accidents' and is true ?: '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());
そして、それは突然機能します。