Это стилистический вопрос. Я хочу дважды выполнить цикл с переменной on
, для которой установлено значение false, затем значение true. Что из этого понятнее:
А)
for (final boolean on : new boolean[] { false, true} )
{
doStuffBasedOnABooleanFlag(on);
}
B)
for (int i = 0; i < 2; ++i)
{
final boolean on = (i == 1);
doStuffBasedOnABooleanFlag(on);
}
в) что-то еще
редактировать: вступает в силу закон непреднамеренного толкования Мерфи ... сценарий использования, который я изначально выглядел примерно так вместо doStuffBasedOnABooleanFlag:
for (final boolean on : new boolean[] { false, true} )
{
JButton button = on ? onButton : offButton;
button.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent event) {
doStuffLaterBasedOnABooleanFlag(on);
}
}
}
Но я думаю, что мне нравится ответ Брендана, я просто сделаю рефакторинг содержимого цикла в отдельный метод:
doStuffBasedOnABooleanFlag(false);
doStuffBasedOnABooleanFlag(true);
...
private void doStuffBasedOnABooleanFlag(final boolean on)
{
JButton button = on ? onButton : offButton;
button.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent event) {
doStuffLaterBasedOnABooleanFlag(on);
}
}
}