java-变量名的变量?或者有类似于宏的东西吗?

java-变量名的变量?或者有类似于宏的东西吗?,java,variables,nested-class,Java,Variables,Nested Class,是否可以为变量名创建变量?像这样 class example { String VAR1 = "id"; String VAR2 = "mark"; public foo() { int VAR1; int VAR2; } } 或者说我有嵌套的类Parent和Child class Parent { char a; //some variables class child { //char b = Par

是否可以为变量名创建变量?像这样

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

   public foo()
    {
     int VAR1;
     int VAR2;
    }
}
或者说我有嵌套的类Parent和Child

class Parent { 
   char a;
   //some variables

   class child {
     //char b = Parent.a;
   }
}
我有很多这样的类。所以我需要用类似宏的东西替换“Parent.a”中的“Parent”,这样我就不想单独更改其子类中的每个“Parent”


有什么可能的解决方案吗?

您的第一个示例在Java中是不可能的。如果更改代码,则第二个示例有效:

class Parent {
    char a;

    class child {
        char b = a;
    }
}

如果您想要一种方便的方法来重命名变量,那么使用一个IDE


这类事情已经或者至少应该不属于编程语言设计的范畴。

Java中没有,但通常没有必要——重新思考设计通常会更好。您到底想做什么?Java反射api可能会满足您的要求。您的问题不太清楚。但不能在同一作用域或重叠作用域中声明具有相同名称的变量。因此,您的第一部分将不起作用。@Shiva,如果public foo是类的构造函数,那么它的名称应该与类名匹配。@Shiva:如果您需要复制/粘贴大量代码,您确实需要重新考虑您的设计。请准确解释你想做什么,并将其编辑到你的问题中;现在还不清楚。谢谢。我知道这一点,我想问的是有什么办法可以做到这一点。你能描述一下你试图用变量作为变量名来解决的问题吗?对我来说,这听起来像是HashMap的工作。
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;
       }
    }