是否可以在Java中使用String而不是变量名

时间:2011-09-24 19:24:48

标签: java string variables

我创建了3个变量

收音机1 第二广播电台 radio3

是否可以使用for循环和一个名为“radio”的String来最后添加计数器以获取变量?

例如像这样的

for(i=1;i<=3;i++)
    if(("radio" + i).method())
          do something

提前致谢

4 个答案:

答案 0 :(得分:7)

您可以使用Radio对象并改为使用数组:

Radio[] radios = new Radio[] {radio1, radio2, radio3};
for(i=0;i<3;i++)
    if(radios[i].method())
          do something

如果要通过形成名称来访问变量,还可以使用Java's reflection API。但这是一项昂贵的操作,一般不可取。

答案 1 :(得分:1)

在我看来,您希望使用Dictionary或类似的数据结构,该结构允许您存储由例如字符串索引的对象。

修改

有几个人指出,HashMap是一种更现代,更好的选择。

答案 2 :(得分:0)

您应该使用array,以便轻松迭代所有这些内容。

如果您不知道有多少项目,您也可以使用列表。

答案 3 :(得分:0)

最方便的方法是使用这样的中间数组:

Radio radio1, radio2, radio3;
for(Radio radio: Arrays.asList(radio1, radio2, radio3))
    if( radio.method() )
        doSomething();

java.util.Arrays由JDK提供。

这很有效。但是请考虑一下,你真正想要三次单独的Radio个实例与你对其中一个实例不感兴趣的次数有多少次。在后一种情况下,将三个实例从一开始就放入Collection或数组中,并忘记三个单独的实例。