在循环中调用类似对象的方法

时间:2014-05-21 01:02:13

标签: java for-loop

假设我有4个对象:

  • stringItem1
  • stringItem2
  • stringItem3
  • stringItem4

我想使用一个名为setText(String argument)的方法实现的方法。我想知道是否可以使用循环为每个对象调用方法。而不是说对象的数量(stringItem1stringItem4),我想让循环来做,像这样:

for(int x=1; x<=4; x++){    
    stringItemx.setText("LOL");
}

5 个答案:

答案 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)

没有。您必须为对象创建一个数组,并且可以通过解析数组来遍历每个对象。