Java成员变量作为关联数组,如AS3

时间:2012-07-11 09:00:56

标签: java actionscript-3 associative-array

在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 个答案:

答案 0 :(得分:3)

理论上,您可以使用反射API执行此操作。实际上,您不会在Java中使用这种编码风格。

答案 1 :(得分:2)

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

您可以使用Map<String, String>来实现这一目标。

答案 2 :(得分:0)

您可以使用数组,例如:

String[] myVars = new String[4];
for(int i = 0; i < myVars.length; i++)
{
 myVars[i]="SomeValue"+i;
}

答案 3 :(得分:0)

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

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

这将调用yourVarsObject

中的setFoo(“bar”)