Java-将对象属性设置为null



我试图实现一个规范图。共有三个类别:公司、部门、员工。

  • 员工有姓名、工资、部门
  • 每个部门都有一个公司、名称、员工(0..n(——我为此制作了一个LinkedList——以及一个只能在一个部门担任经理的员工类型经理
  • 部门可以有部门类型的子部门——我也为此制作了一个LinkedList。以及子部门的"不同"构造函数。

  • 每家公司都有自己的名字。

现在我有一个问题:

  • 问题:由于一个经理只能是一个部门的经理,我在setManager中查看是否有任何部门有这个经理作为经理。如果是,那么我回来。这样做正确吗?我考虑了一个布尔isManager,但在规范中没有类似的东西
  • ISSUE:如果我用removeEmployee从部门列表中删除一名员工,我会用相同的方法将该员工的部门变量设置为null。但是,如果我试图获得员工所在部门的名称,我仍然会得到该部门,而不是空的

Department类代码的removeEmployee就是这样的:

public void removeEmployee(Employee e) {  
employees.remove(e);  
e.setDepartment(null);  
}

在主要方法中,我这样做是为了检查员工部门是否为空:

departmentName.employees.remove(employeeName);
System.out.println(employeeName.getDepartment().getName());

输出应为null,但我得到departmentName。他已从部门的员工列表中删除,但将该员工的部门设置为null失败。

如果你能回答我的问题并帮助我解决问题,我会很高兴。

我也可以上传图表和我的三个类,让你检查一下,但我认为你不想浪费时间。

谨致问候,Newb

似乎employees是某种List<Employee>,并且是public

这使得可以调用不调用setDepartment(null)departmentName.employees.remove(employeeName);,最好将employees声明为private,并且只使用public removeEmployee()方法来移除员工。

通过这种方式,您可以避免以您定义的方式以外的任何其他方式删除员工(这称为封装(。

我建议用调用remove方法替换line,因为您没有调用您的方法。而不是调用Collection方法。

它应该是这样的:

ObjectName.removeEmployee(employee);

相关内容

  • 没有找到相关文章