1

例如,我们有

String name = "Peter";

Employee我们希望以这个字符串命名假设的特定实例,如

Employee ____ = new Employee(...);

那么我必须在那里放什么?

4

3 回答 3

3

我不确定这是否可以在 Java 中完成。您可以改用Map,其中键是员工姓名"Peter",值是Employee对象。但在这种情况下,您需要通过使用类的其他字段Employee覆盖hashCode()and方法来区分具有相同名称的两个对象。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员工 ID。

如果Employee有一个名为 "name" 的字段。您可以在构造函数中或使用 setter 方法进行设置。

于 2013-06-15T14:15:01.873 回答
2

变量名在 Java 中是不相关的——它们在您的代码编译后会丢失,只是为了方便程序员。因此,不可能像这样动态地命名变量。

您可以创建name一个类的字段,也可以按照其他人的建议Employee使用 a 。Map<String, Employee>如果您需要一种快速按姓名查找员工的方法,则后一种选择可能是最好的方法。

于 2013-06-15T14:19:19.747 回答
1

您只能命名保存引用的局部变量。

Employee peter = new Employee("peter");

如果您希望能够查找员工我的名字,您可以这样做

Map<String, Employee> employeeMap = new LinkedHashMap<>();

employeeMap.put("peter",  new Employee("peter"));

Employee e = employeeMap.get("peter");
于 2013-06-15T14:14:51.500 回答