Salve a tutti! Ho un problema in merito un esame che ho vistionato rigaurdo la programmazione in Java.
L'esame prevede di creare una classe Veicolo, che viene estesa poi dalle classi Furgoni, Auto e Bici. Una delle richieste successive è quella di implementare un archivio in cui vengono salvati tutti i veicoli, che sarebbero da stampare ordinati in base al tipo di veicolo.
Ho creato un ArrayList che contenga oggetti di tipo Veicolo, l'inserimento funziona e la stampa normale pure, ma il problema sta nell'ultimo punto: esiste un modo per ordinare una lista di sottoclassi di una superclasse, in base all'identità delle sottoclassi? Ovvero far stampare prima le auto, poi le bici e poi i furgoni, ad esempio? Visto che non è previsto di aggiungere un semplice attributo "tipo" per ogni sottocalsse, ho valutato la possibilità di fare una lista di liste, in particolare 3 liste (una per sottoclasse), ma vorrei capire se c'è questa possibilità usando un'unica lista. Ho provato a giocare con il metodo getClass() il cui toString() restituisce una stringa del genere "nomeprogetto.nomeclasse", e ho provato a fare un ordinamento in base a questo criterio, ma non sembra funzionare. Qualcuno ha qualche idea? Scusate la lunghezza e grazie per il tempo!
L'esame prevede di creare una classe Veicolo, che viene estesa poi dalle classi Furgoni, Auto e Bici. Una delle richieste successive è quella di implementare un archivio in cui vengono salvati tutti i veicoli, che sarebbero da stampare ordinati in base al tipo di veicolo.
Ho creato un ArrayList che contenga oggetti di tipo Veicolo, l'inserimento funziona e la stampa normale pure, ma il problema sta nell'ultimo punto: esiste un modo per ordinare una lista di sottoclassi di una superclasse, in base all'identità delle sottoclassi? Ovvero far stampare prima le auto, poi le bici e poi i furgoni, ad esempio? Visto che non è previsto di aggiungere un semplice attributo "tipo" per ogni sottocalsse, ho valutato la possibilità di fare una lista di liste, in particolare 3 liste (una per sottoclasse), ma vorrei capire se c'è questa possibilità usando un'unica lista. Ho provato a giocare con il metodo getClass() il cui toString() restituisce una stringa del genere "nomeprogetto.nomeclasse", e ho provato a fare un ordinamento in base a questo criterio, ma non sembra funzionare. Qualcuno ha qualche idea? Scusate la lunghezza e grazie per il tempo!