例如,我们有
String name = "Peter";
Employee
我们希望以这个字符串命名假设的特定实例,如
Employee ____ = new Employee(...);
那么我必须在那里放什么?
我不确定这是否可以在 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 方法进行设置。
变量名在 Java 中是不相关的——它们在您的代码编译后会丢失,只是为了方便程序员。因此,不可能像这样动态地命名变量。
您可以创建name
一个类的字段,也可以按照其他人的建议Employee
使用 a 。Map<String, Employee>
如果您需要一种快速按姓名查找员工的方法,则后一种选择可能是最好的方法。
您只能命名保存引用的局部变量。
Employee peter = new Employee("peter");
如果您希望能够查找员工我的名字,您可以这样做
Map<String, Employee> employeeMap = new LinkedHashMap<>();
employeeMap.put("peter", new Employee("peter"));
Employee e = employeeMap.get("peter");