如何使用用户输入更改对象的名称。 对于前我要求用户输入他们的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;
答案 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));
}
}