doStuffBasedOnABooleanFlag

doStuffBasedOnABooleanFlag

这是一个风格问题。我想使用变量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);

更少的代码,更明显,更有效。

09-25 21:45