例如,我们有
String name = "Peter";
我们希望在此字符串后面命名一个假设的Employee
的特定实例,如
Employee ____ = new Employee(...);
那我该怎么办呢?
答案 0 :(得分:3)
我不确定这是否可以用Java完成。您可以改为使用Map,其中密钥为员工姓名"Peter"
,值为Employee
对象。但在这种情况下,您需要使用Employee
类的其他字段覆盖hashCode()
和equals()
方法来区分具有相同名称的两个Employee
个对象。
Map<String, Employee> employeeMap = new HashMap<>();
employeeMap.put("Peter", new Employee("Peter")); // assuming you have this constructor
Employee e = employeeMap.get("Peter");
更好的方法是使用一些唯一的ID
作为Map
的关键字,如employeeID。
如果Employee
有一个名为“name”的字段。您可以在构造函数中或使用setter方法设置它。
答案 1 :(得分:2)
答案 2 :(得分:2)
变量名与在Java中不相关 - 它们在编译代码后丢失,并且只是程序员的便利。因此,无法动态地命名变量。
您可以将name
字段设为Employee
字段,也可以像其他人建议的那样使用Map<String, Employee>
字段。如果您需要通过名称快速查找员工,后一种选择可能是最佳方法。
答案 3 :(得分:1)
您只能命名包含引用的局部变量。
Employee peter = new Employee("peter");
如果您希望能够查找员工我的名字,您可以
Map<String, Employee> employeeMap = new LinkedHashMap<>();
employeeMap.put("peter", new Employee("peter"));
Employee e = employeeMap.get("peter");