【发布时间】:2012-11-01 22:55:10
【问题描述】:
我正在尝试修改 AuthenticatedUser 类以存储 AdminRole 的列表。 AuthenticatedUser 是我所有应用程序都使用的类;当用户成功登录时,它会被放入会话中。现在我想向用户会话添加授权角色列表。然而,每个应用程序对AdminRole 类的定义略有不同。例如,我的 DataCenter 应用程序存储在数据库中:
employee_id
role_name
site_name
receive_email
并非我的所有应用程序都需要 receive_email 字段,或者可能想要扩展自己的方法。我认为这需要一个抽象类。但是 Eclipse 在此 sn-p 中抱怨 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 列表,但我认为通过扩展抽象类可以传递子类。我错过了什么?
【问题讨论】:
-
请尝试创建一个 [sscce](短,自包含,正确示例)。我意识到您有编译错误,但您可以将该行注释掉。同时粘贴 Eclipse 报告的实际错误,无需重新表述。
标签: java inheritance abstract-class