java - 如何在其他类中传递类的值?

标签 java eclipse gwt

我在一杯水中迷失了自己。我正在做一个项目,我想管理不同类型的用户:注册用户、访客、官方和管理员。显然,官方和管理员都是注册用户。

因此,我创建了 4 个类,其中一个是抽象 User。

  • 用户(摘要)
  • RegisteredUser 扩展了 User
  • OfficerUser 扩展了 RegisteredUser
  • UnregisteredUser 扩展了 User
  • AdminUser 扩展了 User
  • 文件

在 User 中调用具有属性(日期、类型等)的 Document 类(用于站点注册)。

管理员用户可以通过面板指定OfficerUser用户。

我的问题是,我怎样才能记忆起OfficerUser中的Document类?我基本上必须将 RegisteredUser 数组移动到具有相同用户名的 OfficeUser 数组。

谢谢,我附上了各个类的代码。

public class AdminUser extends User implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public AdminUser(){}

    public AdminUser(String username, String password, String email)
    {
        this.username = username;
        this.password = password;
        this.email = email;
    }


public class UnregisteredUser extends User 
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private static UnregisteredUser unregistered;

    private UnregisteredUser(){ }

    public static UnregisteredUser get()
    {
        if(unregistered == null)
        {
            unregistered = new UnregisteredUser();
        }
        return unregistered;
    }
}

public class Documento implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    protected String type;
    protected String number;
    protected String sender;
    protected String date_sender;
    protected String date_limit;

    public Documento (String type, String number, String sender, String date_sender, String date_limit) {
        this.type = type;
        this.number  = number;
        this.sender = sender; 
        this.date_sender = date_sender;
        this.date_limit= date_limit;

    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getSender() {
        return sender;
    }

    public void setSender(String sender) {
        this.sender = sender;
    }

    public String getDate_sender() {
        return date_sender;
    }

    public void setDate_sender(String date_sender) {
        this.date_sender = date_sender;
    }

    public String getDate_limit() {
        return date_limit;
    }

    public void setDate_limit(String date_limit) {
        this.date_limit = date_limit;
    }


public class OfficerUser extends RegisteredUser implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public OfficerUser() {}

    protected Documento doc;

    public OfficerUser (RegisteredUser user)
    {
        this.username = user.username;
        this.password = user.password;
        this.email = user.email;
        this.name = user.name;
        this.surname = user.surname;
        this.fiscal_code = user.fiscal_code;
        this.telephone = user.telephone;
        this.doc = 

    }

这是 MapDB 数据库的一部分,我正在使用 GWT 开发 eclipse。

public ArrayList<User> nominateOfficer( String userName){
    RegisteredUser normalOfficer = (RegisteredUser) userMap.get(userName);
    User officer = new OfficerUser(normalOfficer);
    userMap.replace(userName, normalOfficer, officer);
    this.db.commit();
    return getRegistered();
}

最佳答案

也许您可以将其建模为 Office 用户和管理员是角色而不是用户。

因此,角色在某种程度上是特殊的,它指定用户可以执行的操作,并且您可以将不同的角色附加到不同的用户,而无需创建用户类型。

这样,您的建模关系就非常灵活,因为您可以向用户添加更多角色,而无需创建更多类。

关于java - 如何在其他类中传递类的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444992/

相关文章:

java - 如何在 GAE 部署中包含外部类?

gwt - 使用 GWT 生成 UUID

java - 将 BoundMethodHandle 转换为反射

android - ArrayAdapter 错误

java - 如何在没有 Eclipse 的情况下创建项目

eclipse - 如何阻止 Eclipse 打开引用的项目?

java - 多次执行 ThreadPoolExecutor 后出现 OutOfMemoryError

java - 如何刷新我的 JLabel 图标?

java - 无法以正确的顺序向 ArrayList 添加元素

java - GWT - 如何在 @Entity 注释的类之外实现 RequestContext 方法?