【问题标题】:Request with an input for a initialized Object带有初始化对象输入的请求
【发布时间】:2017-03-07 17:09:34
【问题描述】:

我想调用一个我在控制台中输入的具有特定名称的对象。 我知道一种方法是使用 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.??

【问题讨论】:

  • 你有没有在 nameObject 变量中得到任何值?
  • 是的,我要求提供成为新对象名称的人的姓名。初始化工作正常问题是当我有几个人对象时,我想用特定名称调用一个。
  • 你能展示你的 Person 类吗?
  • 实际上我在 person 类中只有一个构造函数,它期望名称为字符串。我写这段代码只是作为一个例子。

标签: java input bufferedreader


【解决方案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;
    }
}

【讨论】:

  • 但是我必须为每个新的初始化对象创建一个 if 语句。我正在寻找一种搜索对象的方法,该对象具有在第二个输出问题之后输入的名称。
  • 你能详细解释一下吗?
  • 我编辑了代码的最后几行,希望现在更清晰。
  • 我编辑了我的答案,你最好看看那个
  • 这就是我想要的。非常感谢。
猜你喜欢
  • 2017-03-21
  • 2013-10-25
  • 1970-01-01
  • 2010-09-14
  • 2015-08-06
  • 1970-01-01
  • 2013-06-27
  • 2018-07-15
  • 2018-02-03
相关资源
最近更新 更多