1

在 ActionScript 2 和 3 中,我们可以像访问关联数组一样访问类的成员变量。

例如,

//AS3 Code    
private var tempvar:String="Hello";

    function printString()
    {
       trace(this.tempvar);
      trace(this[tempvar]);// would print the same as above
    }

我想知道在Java中是否也可以这样做。

我需要这个的原因是,我的 java 代码中有一些变量,如下所示

//java code
private String var_1, var_2, var_3, var_4;

要访问这些变量,我必须编写 4 个不同的语句

//java code
var_1="SomeValue1";
var_2="SomeValue2";
var_3="SomeValue3";
var_4="SomeValue4";

如果它在 AS3 中,我可以做这样的事情

//AS3 Code
for( var i=1; i<=4;i++)
{
 this["var_"+i]="SomeValue"+i;
}

如果有人可以让我知道如何在 Java 中做同样的事情,我会非常高兴。

谢谢

4

4 回答 4

3

理论上,您可以使用反射 API 来做到这一点。实际上,您不会在 Java 中使用这种编码风格。

于 2012-07-11T09:07:21.253 回答
2

我认为你需要重构你的Java代码......

您可以使用 aMap<String, String>来实现。

于 2012-07-11T09:14:12.947 回答
0

你可以使用一个数组,例如:

String[] myVars = new String[4];
for(int i = 0; i < myVars.length; i++)
{
 myVars[i]="SomeValue"+i;
}
于 2012-07-11T09:16:07.147 回答
0

你可以使用 beanutils: http ://commons.apache.org/beanutils/

BeanUtils.setProperty(yourVarsObject, "foo", "bar");

这将调用 yourVarsObject 的 setFoo("bar")

于 2012-07-11T09:19:34.307 回答