繁体   English   中英

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

[英]Java member variables as associative array like AS3

在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中执行相同的操作,我将是一个非常高兴的程序员。

谢谢

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

我认为您需要重构Java代码...

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

您可以使用数组,例如:

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

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

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

这将在yourVarsObject上调用setFoo(“ bar”)

暂无
暂无

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

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