如何在String之后命名对象引用

时间:2013-06-15 14:13:34

标签: java string object reference

例如,我们有

String name = "Peter";

我们希望在此字符串后面命名一个假设的Employee的特定实例,如

Employee ____ = new Employee(...);

那我该怎么办呢?

4 个答案:

答案 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)

Naming a new object after a string?

你会在这里找到你的答案...... 但你不应该练习这样的命名。

答案 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");