我正在尝试修改一个类AuthenticatedUser
以存储AdminRole
's 列表。 AuthenticatedUser
是我所有应用程序都使用的类;当用户成功登录时,它会被放入会话中。现在我想向用户会话添加授权角色列表。然而,每个应用程序对AdminRole
类的定义略有不同。例如,我的 DataCenter 应用程序存储在数据库中:
employee_id
role_name
site_name
receive_email
并非我的所有应用程序都需要 receive_email 字段,或者可能想要扩展自己的方法。我认为这需要一个抽象类。但是 Eclipse 在此代码段中抱怨 Authorized_role_list 设置器上的错误类型。
DataCenterAdminRoleDAO dcAdminDao = new DataCenterAdminRoleDAO();
try {
List<DataCenterAdminRole> authorized_roles = dcAdminDao.getAuthorizedRoleListByBadge(authenticatedUser.getBadge());
authenticatedUser.setAuthorized_role_list(authorized_roles);
=== Classes
public class AuthenticatedUser extends Employee implements Serializable {
private static final long serialVersionUID = 1L;
private List<AdminRole> authorized_role_list;
...
}
public abstract class AdminRole implements Serializable {
private static final long serialVersionUID = 1L;
private String role_name; //regular, admin, editor, etc..
private String site_id; //company branches
...
}
public class DataCenterAdminRole extends AdminRole implements Serializable {
显然,解决方法是在我的数据中心实现中返回一个列表,AdminRole
但我认为通过扩展抽象类我可以传递子类。我错过了什么?