2016-10-25 18 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

是的,我要求提供成为新对象名称的人的姓名。初始化工作正常的问题是,当我有几个人的对象,我想打一个具体的名字。 –

+0

你可以显示你的Person类吗? – xFighter

回答

1

好,首先你可以让你的类,如下所示:

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

我编辑了我的代码的最后几行,我希望它现在会更清晰。 –