基于迭代更新for循环中的java变量

时间:2015-03-04 17:27:41

标签: java arrays swing

我正在使用Java Swing,我想在每个单选按钮选择上更改变量。我是Java新手,我不确定我在这里滑倒...

String[] test = {"red","blue","green","yellow"};

    for(final int i=0; i < test.length; i++)
    {
        RadioItem = new JRadioButtonMenuItem(test[i]);
        RadioItem.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    settingSelection = test[i];
                    JOptionPane.showMessageDialog(null,test[i]);
                };
            });
        settings.add(RadioItem);
        mnSettings.add(RadioItem);
    }

我得到的错误是:

  

无法分配最终的局部变量i。它必须是空白的,不能使用复合赋值。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

它抱怨线:

for(final int i=0; i < test.length; i++)

在for循环中,你将i定义为final,然后你也改变了i的值(for循环的工作)。所以改成它:

for(int i=0; i < test.length; i++)

分配一次的最终字段或对象无法再次重新分配另一个值。

答案 1 :(得分:0)

从循环中删除最终关键字

for(int i=0; i < test.length; i++)

答案 2 :(得分:0)

您可以在for循环中声明变量 for(int i = 0; i < 10; i++)

你所做的是在for循环中声明一个最终变量。这是不可能做到的。最终变量无法更改,其值已设置且无法更改

取出final,让你的循环就像for(int i = 0; i < test.length; i++)