Nel mio DAO ho un metodo in cui creo 2 oggetti diversi e voglio restituire entrambi quegli oggetti, ma non sono sicuro di quale sia il modo migliore per fallo. Ho guardato usando ? extends myObject
, creando un'altra classe che contiene entrambi i miei oggetti che voglio restituire, e usando semplicemente List<Object>
.Java: il modo migliore per restituire più tipi di oggetto da un metodo
In breve, perché ho bisogno di questi oggetti simili è quello di visualizzare 1 sullo schermo e l'altro da usare con primefaces dataexporter che non gestisce gli elenchi in un oggetto per quanto ne so.
Classe persona
public class Person() {
firstName = null;
lastName = null;
List<Programs> programs = new ArrayList<Programs>();
// Getters and setters
}
Classe DataExporterPerson
public class DataExporterPerson() {
firstName = null;
lastName = null;
String program = null;
// Getters and setters
}
metodo DAO:
public List<SOMETHING> getPeople() {
// query db for people
// build both objects
return ?????
}
ora ho capito che posso creare facilmente un altro oggetto come quella qui sotto, ma che sembra come un modo inefficiente di fare le cose perché fondamentalmente sto creando un oggetto solo per tornare da 1 meth od.
public class PersonTransporter() {
Person person = null;
DataExporterPerson = null;
}
Qual è il modo migliore per gestire questo scenario?
EDIT
La ragione per cui sto cercando di tornare 2 oggetti in 1 metodo è perché questo è un metodo DAO che interroga il database e costruisce 2 oggetti in base ai dati nella query. Non voglio suddividerlo in 2 metodi perché non voglio interrogare il db due volte se non ne ho bisogno.
Perché 'DataExporterPerson' non' estende Person'? Quindi potresti usare una 'Collezione'. –
In genere è una cattiva idea che un singolo metodo faccia due cose. Puoi chiarire perché l'unico metodo * richiede * due valori di ritorno? –
Potrebbe non funzionare due cose; potrebbe fare una cosa e restituire una 2-tupla. –