【发布时间】:2011-01-23 21:39:34
【问题描述】:
这是一个风格问题。我想使用变量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) 别的东西
编辑:墨菲的意外解释定律开始发挥作用......我最初看起来像这样的用例而不是 doStuffBasedOnABoleanFlag:
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);
}
}
}
【问题讨论】:
-
我猜你当时不小心回答了自己的问题,而我只是帮助你意识到了这一点?
-
我个人的偏好是:
for (boolean option : Arrays.asList(false, true))