Java内部类用于存储一个人的多个角色



这里有一个问题:

我正在制定一个计划,将公司的员工分配到不同的部门,并为他们在团队中建立不同的角色。

因此,一名员工可以在多个团队中。每个团队都将扮演不同的角色

因此,我创建了一个接口Role,并实现到TeamHead类和TeamMember中。这样,一旦员工加入团队,我就可以为他们建立角色。

但是,由于一名员工可以是团队1中的TeamHead,也可以是团队2中的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将存储属于该员工的所有团队和角色,以供以后使用。

那么,这是一个正确的方法吗?如果是,我该如何正确地实现它?

谢谢。

为什么不使用映射呢?(如果他们在一个团队中只能扮演一个角色(

以及两种方法来检查员工是否在团队中以及他/她担任的角色

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

最新更新