Ho una classe astratta denominata Utente, un utente può essere creato sia come tipo Studente che come tipo Insegnante. Ho fatto un ArrayList di utenti (di studenti e docenti) e quello che sto cercando di fare è chiamare un metodo di esempio a seconda di ciò l'oggetto corrente è un'istanza di:Tipi di oggetti multipli in un ArrayList
for (User user : listOfUsers) {
String name = user.getName();
if (user instanceof Student) {
// call getGrade();
} else { // it is an instance of a Teacher
// call getSubject();
}
}
Il problema che sto avendo è poiché è un oggetto ArrayList di oggetti User, non può ottenere il metodo del tipo Studente, ad esempio getGrade(). Tuttavia, poiché sono in grado di determinare l'istanza di un utente corrente, sono curioso di sapere se sia ancora possibile chiamare un metodo specifico a seconda del tipo di utente.
È possibile o devo separare i tipi di utenti in elenchi separati?
Si prega di rispondere presto, molte grazie.
mi aiutano a migliorare la mia risposta e commentare il voto? – user987339
Ottima risposta. Link, definizione e campione. Anche se forse dovresti fare qualcos'altro 'if (user instanceof Teacher) {}' e mettere un 'else' in basso solo per comportamento predefinito –
Tnx @Nappa The Saiyan! – user987339