在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做同样的话,我会成为一个快乐的程序员。
由于
答案 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”)