假设我有4个对象:
我想使用一个名为setText(String argument)
的方法实现的方法。我想知道是否可以使用循环为每个对象调用方法。而不是说对象的数量(stringItem1
或stringItem4
),我想让循环来做,像这样:
for(int x=1; x<=4; x++){
stringItemx.setText("LOL");
}
答案 0 :(得分:3)
是的,如果你把它们放在一个数组中。 像这样:
StringItem[] items = new StringItem[4];
items[0] = stringItem1;
//etc...
for(int i=0; i < 4; i++){
items[i].setText("LOL");
}
答案 1 :(得分:0)
不,这是不可能的。
相反,您可以将数据存储在Map<String, YourObject>
中,使用变量的名称作为键,并使用密钥从Map
检索元素以应用值:
Map<String, YourObject> map = new HashMap<>();
map.put("stringItem1", stringItem1);
map.put("stringItem2", stringItem2);
//...
map.put("stringItem10", stringItem10);
for(int x=1;x<=10;x++){
map.get("stringItem" + x).setText("LOL");
}
答案 2 :(得分:0)
不,因为在此上下文中未声明stringItemx
。你会收到一个错误。
您可以考虑在这4个对象中使用其他参数或其他相似性。因为这不起作用。
答案 3 :(得分:0)
您可以声明字符串项对象的数组,然后可以通过索引引用它们。
JTextField[] stringItems = {stringItem1, stringItem2, /* ... */, stringItem10};
稍后,您可以使用for
循环。
for (int i = 0; i < stringItems.length; i++) {
stringItems[i].setText("LOL");
}
答案 4 :(得分:0)
没有。您必须为对象创建一个数组,并且可以通过解析数组来遍历每个对象。