Sto tentando di modificare una classe AuthenticatedUser
per memorizzare un elenco di AdminRole
. AuthenticatedUser
è una classe utilizzata da tutte le mie applicazioni; viene inserito in una sessione quando l'utente si collega correttamente. Ora voglio aggiungere un elenco di ruoli di autorizzazione alla sessione utente. Tuttavia, ciascuna applicazione definisce la classe AdminRole
in modo leggermente diverso. Ad esempio, i miei negozi di applicazioni DataCenter nel database:Java Abstract Class And Generics
employee_id
role_name
site_name
receive_email
Non tutti i miei applicazioni dovranno campo receive_email o possono voler estendere i propri metodi. Ho pensato che questo richiedesse una lezione astratta. Ma Eclipse si lamenta del tipo sbagliato nel setter Authorized_role_list qui in questo frammento.
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 {
Ovviamente una correzione è quello di restituire un elenco di AdminRole
nel mio Datacenter Implementazione ma ho pensato estendendo la classe astratta ho potuto passare la sottoclasse. Cosa mi manca?
Si prega di provare a creare [sscce] (breve, autonomo, esempio corretto). Mi rendo conto che hai un errore di compilazione ma puoi lasciare la linea commentata. Incollare anche l'errore effettivo segnalato da Eclipse senza riformulare. –