我想调用100个对象名,而不需要写100次名字 假设我有100个名为B1,B2,B3 ... B100的按钮 例如,我想将它们设置为可见,所以我需要写
B1.setVisible(true);
其余99个对象的等等
我需要在循环中输入它们,以便每次转动新对象都可见
我试过B"i".setVisible(true);
,但IDE不接受它
我试过B%.setVisible(true);
,但我不知道如何更换%
重要提示:已存在100个对象
谢谢
答案 0 :(得分:5)
将按钮添加到List
- 如果按钮文本及其行为足够相似,您可以在循环中执行此操作:
...
List<Button> buttons = new ArrayList<>();
for (int count = 0; count < 100; count++) {
Button myButton = new Button("b" + count);
buttons.add(myButton);
}
...
然后,您可以遍历列表并访问所有按钮:
...
for (Button b : buttons) {
b.setVisible(true);
}
...
答案 1 :(得分:2)
如果他们是对象的一部分,您可以使用反射。 http://tutorials.jenkov.com/java-reflection/fields.html
性能方面它并不是最好的,但是如果你有一个遗留的应用程序,你需要这个,你可能比这更糟糕。
以下是符合您需要的代码。
MyObject objectInstance = new MyObject();
Class aClass = MyObject.class
for(int i = 1; i <=100; i++){
Field field = aClass.getField("B"+i);
// get the value
Object value = (Button)field.get(objectInstance);
// set the value
field.set(objetInstance, value);
}