2014-12-16 2 views
-4

Скажите, что я получаю имена людей и хочу создавать объекты с одинаковыми именами:Я хочу написать функцию в Java, которая принимает аргумент String в качестве аргумента и создает объект с тем же именем.

void foo(String str){ 
     Person str = new Person(); 
} 

Так что позже я могу обратиться к человеку по имени, что-то вроде:

int getAcoountNumber(String str){ 
     return str.acNumber; 
} 
+1

Посмотрите в Java Reflection API –

+4

Это очень непонятно, что вы на самом деле хотите, но я бы держать пари отражение не так. Из примера, который вы указали, я бы предложил посмотреть в java.util.Map и googling вокруг гораздо больше. –

+0

У вас может быть узел, у которого есть эта строка и значение. позже вы можете идентифицировать этот узел, используя строку. – Sarz

ответ

3

Я думаю, вам нужна карта для струнного ул на ул Person.

говорят, карта HashMap nameMap, и изменить код так:

void foo(String str){ 
    Person p = new Person(str); 
    nameMap.put(str, p); 
} 

int getAcoountNumber(String str){ 
     return nameMap.get(str).acNumber; 
} 
+1

Возможно, правильно, но поскольку пользователи склонны ошибаться, вы, вероятно, захотите проверить 'nameMap.get (str)' for 'null', прежде чем пытаться получить доступ к любому из своих членов. – ajb