我有一個非常奇怪的問題。我有這個包含兩個規則的Procedure對象。現在我想用for循環來循環這些規則並返回1規則。但我總是得到空。看起來他正在跳過if語句並直接進入我的返回null部分。如果語句不執行for循環android
第一條規則的名稱是年齡,另一條規則的名稱是事故。我在這裏包括了這個方法。
我的日誌回饋:
RuleName中: '年齡' 和變量: '事故',是真的? '假'
RuleName中: '事故' 和變量: '事故'並且是真實的: '真'
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());
然後它突然的作品。
它肯定看起來應該執行條件塊。因此,我們可以100%確定哪個正在運行,可能在每個「返回」之前拋出一個日誌語句(是否已經在調試器中進行了檢查?)。 – 2012-04-24 05:52:26
你的代碼沒有問題,只要正確調試你的代碼,這樣你就可以檢查你的Log語句執行。或者可能不同步。 – user370305 2012-04-24 05:52:38
@MichaelBurr是的,我一步一步地通過調試器。這真是奇怪的行爲.. – 2012-04-24 05:54:55