【问题标题】:java - Variable for variable names ? or is there anything similar to MACRO?java - 变量名的变量?或者有什么类似于 MACRO 的吗?
【发布时间】:2012-04-09 11:12:52
【问题描述】:

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

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;
   }
}

我有很多这样的课程。所以我需要用 MACRO 之类的东西替换 'Parent.a' 中的那个 'Parent',这样我就不想改变它的孩子中的每个 'Parent'单独上课。

有没有办法解决这个问题?

【问题讨论】:

  • Java 中没有,但通常不需要 - 通常最好重新考虑您的设计。你到底想做什么
  • Java 反射 api 可能会为您服务。
  • 您的问题不是很清楚。但是您不能在相同范围或重叠范围内声明具有相同名称的变量。因此,您的第一部分将不起作用。
  • @Shiva,如果 public foo() 是类的构造函数,那么它的名字应该和类名匹配。
  • @shiva:如果你需要复制/粘贴大量代码,你真的需要重新考虑你的设计。请准确解释您要做什么(并将其编辑到您的问题中);目前还不清楚。

标签: java variables nested-class


【解决方案1】:

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

class Parent {
    char a;

    class child {
        char b = a;
    }
}

【讨论】:

  • 谢谢。我知道,我想问有没有什么可以做这样的事情。
  • 您能描述一下您试图通过使用变量作为变量名来解决的问题吗?对我来说,这听起来像是 HashMap 的工作。
【解决方案2】:
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;
       }
    }

【讨论】:

    【解决方案3】:

    如果您想要一种方便的方法来重命名变量,请使用lets you do just that 的 IDE。

    这类事情已经(或至少应该)超出了编程语言设计的范畴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2012-10-15
      • 1970-01-01
      • 2010-09-21
      • 2014-08-20
      • 1970-01-01
      相关资源
      最近更新 更多