[英]Java - set object attribute to null
我尝试实现规格图。 有3类:公司,部门,员工。
部门可以具有部门类型的子部门-我也为此创建了一个LinkedList。 以及子部门的“不同”构造函数。
每个公司都有一个名字。
现在我有一个问题和一个问题:
setManager
是否有任何部门将此经理作为经理。 如果是这样,那么我返回。 这是正确的方法吗? 我想到了一个布尔isManager
但规范中没有类似的东西。 removeEmployee
从部门列表中删除Employee, removeEmployee
相同的方法将Employee的Department变量设置为null。 但是,如果我尝试获取雇员所在部门的名称,我仍然会获得部门,而不是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失败。
如果您能回答我的问题并帮助我解决我的问题,我将很高兴。
我也可以上传图表和三个类,以便您检查,但我不希望您浪费时间。
亲切的问候,纽布
employees
似乎是List<Employee>
某种类型,并且是public
。
这样就可以调用departmentName.employees.remove(employeeName);
不会调用setDepartment(null)
,最好将employees
声明为private
,而仅使用public removeEmployee()
方法删除雇员。
这样,您可以避免以除已定义的方式以外的其他任何方式删除员工(这称为封装)。
我建议将行替换为调用remove方法,因为您不会调用您的方法。 而是调用Collection方法。
它看起来应该像这样:
ObjectName.removeEmployee(employee);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.