如何使用用户输入更改对象的名称?

时间:2014-04-07 14:24:44

标签: java list linked-list

如何使用用户输入更改对象的名称。 对于前我要求用户输入他们的id为字符串。 我想用它来创建一个构造函数。

例如:

RefUnsortedList<Patients> NewList = new RefUnsortedList<Patients>();
Patients entry1=null;
System.out.println("Please enter patient's ID: ");
            String TargetID = scan.next();

我想设置

Patients entry1 = null;

使其成为

Patients "the user input here" = null;

3 个答案:

答案 0 :(得分:1)

java中没有动态变量,必须在源代码中声明它们。

您可以尝试使用Map并为变量的每个实例分配一个键。

Map patientMap = new HashMap();
patientMap.put("entry1", new Patients());
patientMap.put("the user input here", new Patients());

然后,当您想要检索患者时,您可以使用:

Patients patient = patientMap.get("the user input here");

答案 1 :(得分:1)

你真正想做的是:

Map<String, Patient> patients = new HashMap<>();
patients.put("entry1", /* [insert Patient object here] */);

注意事项:

  • 代表患者的课程应命名为 Patient ,而不是Paitents。应该为其实例命名一个类,而不是它们的集合

  • 将地图中的值设置为null是没有意义的,除非您使用的是允许null键的特殊类型的地图(并且使其与不具有{{1}}键有意义该密钥的条目。)

答案 2 :(得分:0)

我假设你正在做这样的事情:

您的患者类别:

public class Patient {
    private String patientID;

    public Patient(String patientID) {
        this.patientID = patientID;
    }

    public String getPatientID() {
        return patientID;
    }

    public void setPatientID(String patientID) {
        this.patientID = patientID;
    }
}

...以及您用于运行控制台的类:

public class Main {

    public Main() {
    }

    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.println("System is ready to accept input, please enter ID : ");
        String ID = console.nextLine();
        Patient patient = new Patient(ID);
        //do some fancy stuff with your patient
    }

}

这将是一个非常基本的例子。

在学习编码时,一定要考虑如何为课程命名。打电话给你的班级“病人”会让我觉得你在这个java类的每个实例中都有一个“病人”的集合,而不是每个实例的一个“病人”。

关于包括地图在内的最新答案,更新的“主要”课程可能如下所示:

public class Main {
    static Map<String, Patient> patients = new HashMap<String, Patient>();

    public Main() {
    }

    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.println("System is ready to accept input, please enter ID : ");
        String id = console.nextLine();
        patients.put(id, new Patient(id));
    }
}