2016-10-25 4 views
1

Я хочу вызвать объект с определенным именем, которое я набираю в консоли. Я знаю, что путь был бы с оператором switch, но он должен работать и с новыми инициализированными объектами.Запрос со входом для инициализированного объекта

вот пример кода.

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 

    String nameObject=null; 
    // Create a new Object with a specific name 
    System.out.println("Type in the name of the Object"); 
    try { 
     nameObject = reader.readLine(); 
    } catch (IOException e) { 

    } 
    Person NewPerson = new Person(nameObject); 


    System.out.println("Which Person do you want to have?"); 
String requestName = reader.readLine(); 
//search for the object which has the name requestName 
// after this i want find the right person with an reader.?? 
+0

вы получили какое-либо значение в переменной nameObject? – xFighter

+0

Да, я спрашиваю имя человека, которое станет названием нового объекта. Intializing работает хорошо, проблема заключается в том, когда у меня есть несколько объектов для лица, и я хочу называть его определенным именем. –

+0

Вы можете показать свой класс Person? – xFighter

ответ

1

хорошо, сначала вы можете сделать свой Person класс как:

public class Person { 
    public String name; 

    public Person(String name) { 
     this.name = name; 
    } 
} 

затем создать массив объектов Person, но вы можете использовать список объектов Person:

List<Person> persons = new ArrayList<Person>(); 

затем добавить создателя в список:

persons.add(newPerson); 

и после получения requestName переменных, итерация по списку, следующим образом:

for(Person p : persons) { 
    if (p.name.equals(requestName)) { 
     // you got the desired person 
     break; 
    } 
} 
+0

Но с этим мне нужно было бы создать для каждого нового инициализированного объекта такую ​​инструкцию if. Я ищу метод, который ищет объект, у которого есть имя, которое было введено после второго выходного вопроса. –

+0

вы можете объяснить это более подробно? – xFighter

+0

Я отредактировал последние строки своего кода. Надеюсь, теперь будет ясно. –