2012-04-09 10 views
0

変数名の変数を作成することはできますか?このようにjava - 変数名の変数?またはMACROに類似したものはありますか?

class example { 
    String VAR1 = "id"; 
    String VAR2 = "mark"; 

    public foo() 
    { 
    int VAR1; 
    int VAR2; 
    } 
} 

または、私はネストされたクラスの親子を持っていると言います。私はすべての親を変更したくないように、私はthis.Soようなクラスの多くを抱えている

class Parent { 
    char a; 
    //some variables 

    class child { 
    //char b = Parent.a; 
    } 
} 

私はMACROのようなもので「Parent.a」内の「親」ことを交換する必要があります'を個別に子クラスに追加します。

可能な解決策はありますか?

+2

Javaにはありませんが、通常は必要ありません。通常は、デザインを再考する方がよいでしょう。あなたはまさに何をしようとしていますか? – Mat

+0

JavaリフレクションAPIが目的に役立つかもしれません。 –

+0

あなたの問題はあまり明確ではありません。しかし、同じスコープまたは重複するスコープ内で同じ名前の変数を宣言することはできません。だから、あなたの最初の部分は動作しません。 –

答えて

0

最初の例はJavaでは使用できません。あなたがlets you do just that IDEを使用して、変数の名前を変更するための便利な方法を希望した場合

class Parent { 
    char a; 

    class child { 
     char b = a; 
    } 
} 
+0

ありがとう。私はそれを知っています、そして、私はそのようなことをする何かがあるのか​​と尋ねています。 – shiva

+0

変数名に変数を使用して解決しようとしている問題について説明できますか?私にとっては、これはHashMapの仕事のように思えます。 – Sandro

0
class Parent { 

     // Main parent 
     char a; 
     //some other fields 

     // The child class 
     class Child { 

     // The main child 
      char a = Parent.a; 
     //some other fields 

     } 

     // this is what you need 
     public char getChild() { 
      Child child = new Child(); 
      return child.a; 
     } 
    } 
0

:あなたのコードを変更する場合は、2番目の例は有効です。

この種のものは、プログラミング言語設計の領域外です(少なくとも、そうすべきです)。

関連する問題