有一个问题:
我正在制定一个计划,将公司的员工分配到不同的部门,并为他们在团队中建立不同的角色。
因此一名员工可以在多个团队中。每个团队,他们都会扮演不同的角色。
因此,我创建了一个接口(interface) Role
并将其实现到 TeamHead
类和 TeamMember
中,这样我就可以在员工添加到后为他们建立角色团队。
但是,由于员工可以在 Team1 中担任 TeamHead
并在 Team2 中担任 TeamMember
。我不知道如何区分它以产生不同的结果。
所以我正在考虑在 Employee
类中创建一个内部类。
public class Employee
{
private class TeamAndRole
{
Team t;
Role r;
public TeamAndRole(Team t, Role r)
{
this.t = t;
this.r = r;
}
}
private ArrayList<TeamAndRole> tar;
public Employee(){
this.tar = new ArrayList<>();
}
//..........
}
因此数组列表 tar
将存储属于该员工的所有团队和角色以供以后使用。
那么这是正确的方法吗? 如果是这样,我该如何正确实现它?
谢谢。
最佳答案
为什么不使用 map 呢? (如果他们在一个团队中只能担任一个角色)
并有两种方法来检查员工是否在团队中以及他/她担任什么角色
private final Map<Team,Role> roles;
public boolean isMember(Team team) {
return roles.containsKey(team);
}
public Role getRole(Team team) {
return roles.get(team);
}
ofc 具有错误处理和空检查
关于Java内部类用于存储一个人的多个角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61320738/