1
categoryCheck: {
        for (String allowedCategory : allowedCategories) {
            if (evt.getLoggerName().startsWith(allowedCategory)) {
                break categoryCheck;
            }
        }
        return false;
    }

ラベルを使用せず、大幅に増やすことなく、このコードを書き直す方法はありますか?

4

4 に答える 4

6

私はおそらくそれを独自の方法に入れます:

// I've guessed at the types...
public boolean isCategoryAllowed(Event evt, Iterable<String> allowedCategories) {
    for (String allowedCategory : allowedCategories) {
        if (evt.getLoggerName().startsWith(allowedCategory)) {
            return true;
        }
    }
    return false;
}

次に、呼び出し元のコードを変更して、メソッドを呼び出すだけにします。

if (!isCategoryAllowed(evt, allowedCategories)) {
    return false;
}
于 2011-10-21T09:28:58.113 に答える
1

フラグを使用できます。

boolean found = false;
for (String allowedCategory : allowedCategories) {
    if (evt.getLoggerName().startsWith(allowedCategory)) {
        found = true;
        break;
    }
}
if(!found) 
    return false;
于 2011-10-21T09:30:00.797 に答える
1

ブールフラグを使用した直接の同等物は次のとおりです。

    boolean found = false;
    for (String allowedCategory : allowedCategories) {
        if (evt.getLoggerName().startsWith(allowedCategory)) {
            found = true;
            break;
        }
    }
    if (!found) {
        return false;
    }
    // ...the rest of the method's code...
于 2011-10-21T09:28:24.940 に答える
1
boolean matched = false;

for (String allowedCategory : allowedCategories) {
    if (evt.getLoggerName().startsWith(allowedCategory)) {
        matched = true;
        break;
    }
}

if (!matched)
    return false;

// else continue with the rest of the code
于 2011-10-21T09:29:53.090 に答える