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

In theory, you could do this with the reflection API. In practice, you would not use this style of coding in Java.

于 2012-07-11T09:07:21.253 に答える
2

Javaコードをリファクタリングする必要があると思います...

a を使用しMap<String, String>てそれを実現できます。

于 2012-07-11T09:14:12.947 に答える
0

beanutils を使用できます: http://commons.apache.org/beanutils/

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

これは yourVarsObject で setFoo("bar") を呼び出します

于 2012-07-11T09:19:34.307 に答える
0

配列を使用できます。例:

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