这是一个风格问题。我想使用变量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);
}
C)其他
编辑:意外解释的墨菲定律开始起作用...用例我本来看起来像这样,而不是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);
}
}
}
但是我想我喜欢Brendan的回答,我只是将循环内容重构为一个单独的方法:
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);
}
}
}
最佳答案
由于只有两行,因此我将跳过循环并执行以下操作:
doStuffBasedOnABooleanFlag(false);
doStuffBasedOnABooleanFlag(true);
更少的代码,更明显,更有效。