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

标签 java oop inner-classes

有一个问题:

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

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

因此,我创建了一个接口(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/

相关文章:

java - JPanel 上的paintComponent() 性能不佳

java - 在静态方法中访问全局类的全局方法

java - Selenium 没有检测到 IE 中的第二个窗口

android,面向对象编程与性能设计

java - 在 ArrayList 中的指定索引处添加元素时出错 [Java]

java - 为什么我收到错误 "non-static variable this cannot be referenced from a static context"?

java - Google AppEngine + 本地 JUnit 测试 + Jersey 框架 + 嵌入式 Jetty

c++ - “类形状”没有名为 ‘info’ 的成员,但添加一个也不起作用

scala - 如何在 Scala 中表示内部单例

Swift 继承嵌套/内部枚举问题