从另一个 class 创建一个 class 的新实例
Creating a new instance of a class from another class
所以我在尝试从我的 class 调用记录中创建员工 class 的实例时遇到了一些困难。
public class Employee implements Comparable<Employee>
{
/* instance variables */
private String Name;
private String employeeNumber;
/**
* Constructor for Employee
*/
public Employee(String employNum)
{
super();
this.employeeNumber = employNum;
}
接下来我需要创建一个记录 class,它将创建员工详细信息的哈希集,这是我需要帮助的地方。
public class Records
{
private HashSet employeeSet;
public Records()
{
Set<Employee> employeeSet = new HashSet<Employee>();
}
然后我希望它有一个添加新员工的方法,然后将他们的记录放入集合中。
public enrollEmployee(String num)
{
Employee newEmp = new Employee(num);
employeeSet.add(newEmp);
}
}
我无法得到创建新员工的最后一点,它没有出现错误并且编译正确。只是没有新员工。
*添加 employeeSet.add(newEmp);导致编译器警告,并且由于 NullPointerException,该方法不会 运行,可能是因为实际上并未创建员工。
有关详细信息,当我创建员工时,如果只输入员工编号,名称应该显示为 "null",但我仍然需要存储该信息。
编辑以更新信息。我遗漏了有关员工 class 的更多详细信息,我应该只创建记录 class.
最后一次更新,感谢您的帮助。阅读回复后,这就是我要为我工作的东西。
public class Records
{
private Set<Employee> employeeSet = new HashSet<Employee>();
public Records()
{
}
public void enrollEmployee(String num)
{
Employee newEmp = new Employee(num);
employeeSet.add(newEmp);
}
}
这是根据您在评论中寻找的内容的新解决方案
public class Record
{
private Set<Employee> employeeSet = new HashSet<Employee>();
public Record()
{
newEmployee("1");
newEmployee("2");
newEmployee("3");
}
public void newEmployee(String employNumber)
{
Employee newEmp = new Employee(employNumber);
employeeSet.add(newEmp);
}
}
您创建的方法从未被调用过...因此从未创建过员工。因此,通过调用 Record Constructor 中的 newEmployee 方法,创建了一个新员工
所以我在尝试从我的 class 调用记录中创建员工 class 的实例时遇到了一些困难。
public class Employee implements Comparable<Employee>
{
/* instance variables */
private String Name;
private String employeeNumber;
/**
* Constructor for Employee
*/
public Employee(String employNum)
{
super();
this.employeeNumber = employNum;
}
接下来我需要创建一个记录 class,它将创建员工详细信息的哈希集,这是我需要帮助的地方。
public class Records
{
private HashSet employeeSet;
public Records()
{
Set<Employee> employeeSet = new HashSet<Employee>();
}
然后我希望它有一个添加新员工的方法,然后将他们的记录放入集合中。
public enrollEmployee(String num)
{
Employee newEmp = new Employee(num);
employeeSet.add(newEmp);
}
}
我无法得到创建新员工的最后一点,它没有出现错误并且编译正确。只是没有新员工。 *添加 employeeSet.add(newEmp);导致编译器警告,并且由于 NullPointerException,该方法不会 运行,可能是因为实际上并未创建员工。
有关详细信息,当我创建员工时,如果只输入员工编号,名称应该显示为 "null",但我仍然需要存储该信息。
编辑以更新信息。我遗漏了有关员工 class 的更多详细信息,我应该只创建记录 class.
最后一次更新,感谢您的帮助。阅读回复后,这就是我要为我工作的东西。
public class Records
{
private Set<Employee> employeeSet = new HashSet<Employee>();
public Records()
{
}
public void enrollEmployee(String num)
{
Employee newEmp = new Employee(num);
employeeSet.add(newEmp);
}
}
这是根据您在评论中寻找的内容的新解决方案
public class Record
{
private Set<Employee> employeeSet = new HashSet<Employee>();
public Record()
{
newEmployee("1");
newEmployee("2");
newEmployee("3");
}
public void newEmployee(String employNumber)
{
Employee newEmp = new Employee(employNumber);
employeeSet.add(newEmp);
}
}
您创建的方法从未被调用过...因此从未创建过员工。因此,通过调用 Record Constructor 中的 newEmployee 方法,创建了一个新员工