Java 从另一个类创建类的新实例

Java 从另一个类创建类的新实例,java,class,methods,constructor,hashset,Java,Class,Methods,Constructor,Hashset,所以我在做一些功课,试图从我的类records创建Employee类的实例 public class Employee implements Comparable<Employee> { /* instance variables */ private String Name; private String employeeNumber; /** * Constructor for Employee */ public Employee(String employNum)

所以我在做一些功课,试图从我的类records创建Employee类的实例

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;             
}
我无法获得创建新员工的最后一点,它不会出现错误,并且编译正确。只是没有新员工。 *添加employeeSet.add(newEmp);导致编译器警告,并且由于NullPointerException,该方法将无法运行,可能是因为员工未实际创建

关于更多信息,当我创建一个员工时,如果只输入了一个员工号码,但我仍然需要存储该信息,则名称应显示为“null”

编辑以更新信息。关于Employee类还有更多的细节,我没有提到,我只想创建Records类

最后更新,谢谢你的帮助。在阅读了回复之后,这就是我为自己工作的原因

   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);
   }
}
公共类记录
{
私有集employeeSet=newhashset();
公共记录()
{
}
公共无效员工(字符串编号)
{
员工newEmp=新员工(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);
    }
 }
公共类记录
{
私有集employeeSet=newhashset();
公共记录()
{
新员工(“1”);
新员工(“2”);
新员工(“3”);
}
public void newEmployee(字符串employNumber)
{
员工新员工=新员工(员工编号);
employeeSet.add(newEmp);
}
}

您创建的方法从未被调用。。。因此,从未创建过员工。因此,通过调用记录构造函数中的newEmployee方法,将创建一个新员工

这是基于您在注释中查找的内容的新解决方案

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);
    }
 }
公共类记录
{
私有集employeeSet=newhashset();
公共记录()
{
新员工(“1”);
新员工(“2”);
新员工(“3”);
}
public void newEmployee(字符串employNumber)
{
员工新员工=新员工(员工编号);
employeeSet.add(newEmp);
}
}

您创建的方法从未被调用。。。因此,从未创建过员工。因此,通过调用记录构造函数中的newEmployee方法,将创建一个新员工

“我无法获取创建新员工的最后一位。”。你有错误吗?到底出了什么问题?你的
集合
应该是一个
集合
对吗?“我无法获得创建新员工的最后一点。”。你有错误吗?到底出了什么问题?您的
集合
应该是
集合
对吧?谢谢您的回复。我改变了布景的制作,实际上我也刚刚完成了。我遇到的主要问题是代码不能创建新员工。我不能更改Employee类,我只需要创建新的Records类。其中有很多我没有包括的细节,比如compareTo。而不是通过构造函数实例化记录时创建员工//我根据你告诉我的答案更改了我的解决方案。我改变了布景的制作,实际上我也刚刚完成了。我遇到的主要问题是代码不能创建新员工。我不能更改Employee类,我只需要创建新的Records类。其中有很多我没有包括的细节,比如compareTo。而不是通过构造函数实例化记录时创建员工//我根据您告诉我的内容更改了解决方案
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);
    }
 }