2016-09-05 5 views
0

Я относительно новым для Java и порылась возможности отражения, но по какой-то причине не может выяснить следующее:Java: Добавить Динамически Класс недвижимости

мне нужно получить имя вереница экземпляр класса. Кажется, я не могу найти способ сделать это с отражением, поэтому я решил добавить свойство класса динамически, которое будет содержать имя класса как String.

Как я могу это сделать?

В качестве альтернативы, я думал о создании свойства Public String в классе, которому я присвою имя созданного класса в конструкторе. На самом деле не понял, как это сделать.

+3

Почему бы просто не использовать 'instance.getClass(). GetName()'? –

+0

Спасибо, Йорн. Мысль об этом, но это возвращает имя класса, а не имя экземпляра. Я уверен, что смущаю терминологию. Класс: org.myapp.MyClass Экземпляры: MyClass myNewClass = new MyClass(): Мне нужна строка для myNewClass. – jbsound

+1

Каков ваш прецедент? – Marvin

ответ

0

Если вы хотите, чтобы имя класса, как комментировал по Йорн Vernee вы можете использовать instance.getClass().getName()

Поскольку вы упоминаете динамически создает строку, я думаю, вы, возможно, означает, что вы хотите, чтобы имя самого объекта. Самый простой способ получить имя объекта - это построить объект и передать имя конструктору для инициализации строки-члена.

Что-то вроде

public class Enemy 
{ 
    private String name; 

    public Enemy(String name) 
    { 
     this.name = name; 
    } 
    public getName() 
    { 
     return name; 
    } 
} 

Enemy orc = new Enemy("orc"); // could be an array of references instead of a var 
orc.getName(); // returns the name of the object, obviously the name is whatever you construct the object with; so you could use any object identifier you like (such as a hash), this also means you can just construct the object and store its reference in an array 
+0

Спасибо, Джордж. Предложение Йорна дает мне название класса, абсолютно. То, что я надеюсь получить, это имя объекта. Ваше решение работает, хотя мне нужно передать имя объекта, который я создаю, дополнительный шаг, который я надеялся избежать. :-) Это может показаться глупым, но чтобы получить имя экземпляра объекта, я удивлен тем, что в Java нет более прямого пути. Я думал, что размышление, возможно, будет ответом, но я не видел никакого свойства или метода для этого. Опять же, я новичок в языке, поэтому прощайте подход новичка к тому, как работает Java. – jbsound