繁体   English   中英

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

[英]Is it possible to use a String instead of a variable name in Java

我创建了3个变量

radio1 radio2 radio3

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

比如像这样的东西

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

提前致谢

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

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

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

在我看来,你想要使用一个字典或类似的数据结构,它允许你存储索引的对象,例如一个字符串。

编辑

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

您应该使用array以便轻松迭代所有array

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

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

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

java.util.Arrays由JDK提供。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM