2012-04-09 1 views
0

Можно ли создать переменную для переменных имен? напримерjava - Переменная для имен переменных? или что-то похожее на MACRO?

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

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

Или Скажите, что у меня есть родительский класс и ребенок.

class Parent { 
    char a; 
    //some variables 

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

У меня много класса, как this.So мне нужно заменить, что «Родитель» в «Parent.a» с чем-то вроде MACRO так, что я не хочу, чтобы изменить все «Родитель 'в своих дочерних классах индивидуально.

Возможно ли решение?

+2

Существует нет на Java, но, как правило, нет необходимости - вам обычно лучше с переосмыслением вашего дизайна. Что именно ты пытаешься сделать_? – Mat

+0

Java-отражение api может служить вашей цели. –

+0

не очень понятно с вашей проблемой. Но вы не можете объявлять переменные с тем же именем в той же области видимости или перекрывающейся области. Итак, ваша первая часть не будет работать. –

ответ

0

Ваш первый пример невозможен в Java. Второй пример действителен, если вы измените код:

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

Если вы хотите удобный способ переименования переменных, а затем использовать IDE, что lets you do just that.

Такие вещи (или, по крайней мере, должны быть) из сферы программирования языка программирования.