View Full Version : [JAVA] Lista di oggetti diversi
franksisca
08-08-2012, 11:19
Allora, ho una situazione un pò particolare...in pratica ho due oggetti così definiti:
public class Servizio implements Serializable
public class Referente extends PersonaGenerica implements Persona, Comparable<Persona>
public interface Persona extends Serializable
Ora devo creare una lista che deve contenere sia Referenti che Servizi...e mi chiedevo se la definisco in questo modo
List <Serializable> elencoServiziEReferenti;
incorro in qualche problema generico?
Avete alternative?
wizard1993
08-08-2012, 13:37
una tanto brutta list di Object?
banryu79
08-08-2012, 14:22
...
Ora devo creare una lista che deve contenere sia Referenti che Servizi...e mi chiedevo se la definisco in questo modo
List <Serializable> elencoServiziEReferenti;
incorro in qualche problema generico?
Avete alternative?
Beh, dipende dal motivo per cui ti serve quella lista, che cosa ci devi fare.
franksisca
09-08-2012, 08:22
Beh, dipende dal motivo per cui ti serve quella lista, che cosa ci devi fare.
devo gestire i pagamenti.
In pratica il "Servizio" ha un costo, e il Referente ha dei guadagno.
questi pagamenti possono essere dilazionati, ed io avevo pensato di costruire un oggetto così composto:
public class Pagamento{
<Referente||Servizio> oggetto;
String dataDiAcconto;
double importo;
//...
}
in modo che metto come identificativo "oggetto", e creo una lista di Pagamento che contiene il tutto e che potrò più semplicemente utilizzare per tenere traccia dei vari pagamenti.
Ovviamente devo adattarmi al codice hce ho scritto negli ultimi 4 mesi visto che domani mi scade il contratto di lavoro...e che queste cosze sono uscite ieri!!!
Puoi fare una lista di Serializable, e trattare tutti gli oggetti come Serializable. Per manipolarli come Persona o Serivizio dovrai vedere per ognuno se sono istanze di una o l'altra classe e fare il cast... anche se non avrei mescolato classi (e concetti) diversi nella stessa lista.
banryu79
09-08-2012, 12:16
Quello che volevo sapere è come verrà processata quella lista dal punto di vista del programma; cioè che operazioni vuoi fare su quella lista e/o con gli oggetti che essa contiene.
Non sapendone di più, e ammettendo che ti serva fare qualche operazione specifica sugli elementi della lista in quanto entità "pagabili" o "contabilizzabili", non so se sia una buona o cattiva idea, ma potresti definire un'interfaccia Accountable che definisce l'operazione(le operazioni) che ti servono e la fai implementare a Servizio e a Referente.
A quel punto puoi creare una lista di Accountable e Pagamento può avere un campo di tipo Accountable.
franksisca
09-08-2012, 13:49
Puoi fare una lista di Serializable, e trattare tutti gli oggetti come Serializable. Per manipolarli come Persona o Serivizio dovrai vedere per ognuno se sono istanze di una o l'altra classe e fare il cast... anche se non avrei mescolato classi (e concetti) diversi nella stessa lista.
avevamo già analizzato qusta ipotesi, e probabilmente è la cosa migliore, solo che volevo sapere se si poteva restringere un pò il campo di esistenza...
Quello che volevo sapere è come verrà processata quella lista dal punto di vista del programma; cioè che operazioni vuoi fare su quella lista e/o con gli oggetti che essa contiene.
Non sapendone di più, e ammettendo che ti serva fare qualche operazione specifica sugli elementi della lista in quanto entità "pagabili" o "contabilizzabili", non so se sia una buona o cattiva idea, ma potresti definire un'interfaccia Accountable che definisce l'operazione(le operazioni) che ti servono e la fai implementare a Servizio e a Referente.
A quel punto puoi creare una lista di Accountable e Pagamento può avere un campo di tipo Accountable.
la lista verrà processata per far apparire gli elementi che hanno un "acconto" minore "dell'importo" in una jlist, e poi di volta in volta verranno aggiunti acconti che monitoreranno i pagamenti e tutto il resto.
L'interfaccia Accountable mi restringerebbe il campo di esistenza, che è quello che vorrei, anche senza specificare una qualche funzione specifica.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.