java - 如何在其他类中传递类的值?
问题描述
我迷失在一杯水中。我正在做一个项目,我想管理不同类型的用户:注册用户、访客用户、官方用户和管理员用户。显然,官方和管理员是注册用户。
因此,我创建了 4 个类,其中一个抽象用户。
- 用户(摘要)
- RegisteredUser 扩展用户
- OfficeUser 扩展 RegisteredUser
- UnregisteredUser 扩展用户
- AdminUser 扩展用户
- 文档
在 User 中调用具有属性(日期、类型等)的 Document 类(用于站点注册)。
Admin 用户可以通过面板指定 OfficerUser 用户。
我的问题是,我怎样才能回忆起OfficerUser 中的Document 类?我基本上必须将 RegisteredUser 数组移动到具有相同用户名的 OfficialUser 数组。
谢谢,我附上了各种类的代码。
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 用户和管理员是角色而不是用户。
因此,角色的特殊之处在于它指定了用户可以做什么,您可以将不同的角色附加到不同的用户,而无需创建用户类型。
通过这种方式,您的建模关系非常灵活,因为您可以在不创建更多类的情况下向用户添加更多角色。
推荐阅读
- wso2 - 无法使用 WSO2 apictl 工具登录环境
- c# - 在 Windows 窗体 C# .NET Core 中使用 [DataDirectory] 时无法连接到 localdb
- android - 在 Kotlin MultiPlatform 项目中未解决 iOS 依赖项
- javascript - 就像下面的 React 代码一样,JavaScript 不能直接放在 JSX 中,但是为什么 JSX 可以放在 JavaScript 中呢?
- tensorflow - 错误:无法导入名称“squeeze_or_expand_dimensions”
- python - pythonic方式对数据框中的重复行进行排名然后合并
- r - 在R中的图像上选择特定区域中的像素
- excel - 从行源填充 VBA 列表框并更新多行
- reactjs - 如何在expo react native的borderColor上添加线性渐变颜色?
- python - qt tab 小部件右侧和底部有白色边框