有没有办法在数组中的foreach循环中创建对象

时间:2015-03-13 17:56:39

标签: java arrays loops foreach

我试图在每个循环中制作一些按钮,但我无法弄清楚它是如何正确的。 它甚至有效吗?

        String[] myButtons = {"Label","Checkbox","CheckboxGroup", "Textfield", "TextArea","Choice", "List", "Scrollbar", "ScrolPane", "Ende"};

    for (String buttonName : myButtons) {
        Button buttonName = new Button( buttonName );
    }

2 个答案:

答案 0 :(得分:2)

当然,如果您不尝试重用buttonName,那么您将能够编译并创建一些按钮:

for (String buttonName : myButtons) {
    Button button = new Button( buttonName ); // right here!
}

但是你没有对他们做任何事情。也许你想将它们添加到一个框架中?

for (String buttonName : myButtons) {
    Button button = new Button( buttonName );
    frame.add(button);
}

您确定不想使用JButton吗?

答案 1 :(得分:2)

看起来你每次传递都会重新创建Button对象。当您还需要实例化实际Button对象列表时,您只有一个String名称列表。试试这个:

String[] buttonNames = {"One", "Two", "Three", "Four", "Five"};
Button[] buttons = new Button[buttonNames.length];
for (int i = 0; i < buttons.length; i++) {
   buttons[i] = new Button(buttonNames[i]);
}

根据Button对象的不同,您还可以在for循环中包含一个匿名函数,该函数将创建的每个按钮绑定到事件侦听器。