Java - Meilleure façon de renvoyer plusieurs types d'objet à partir d'une méthode

Dans mon DAO, j'ai une méthode où je créer 2 objets différents et je veux retourner à la fois de ces objets, mais je ne suis pas sûr de ce que le meilleur moyen est de le faire. J'ai regardé à l'aide de ? extends myObject, la création d'une autre classe qui détient à la fois de mes objets que je veux renvoyer, et seulement à l'aide de List<Object>.

Longue histoire courte sur pourquoi j'ai besoin de ces objets similaires affiche 1 à l'écran et l'autre à utiliser avec primefaces dataexporter qui ne gère pas les listes dans un objet aussi loin que je suis au courant.

Personne De La Classe

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
}

Méthode DAO:

public List<SOMETHING> getPeople() {
  //query db for people

  //build both objects

  return ?????
}

Maintenant, je comprends que je peux très facilement créer un autre objet comme celui-ci, mais cela semble être une mauvaise façon de faire les choses parce que je suis fondamentalement de la création d'un objet juste de retour de la méthode 1.

public class PersonTransporter() {
  Person person = null;
  DataExporterPerson = null;
}

Quelle est la meilleure façon de gérer ce scénario?

MODIFIER

La raison que je suis en train de retourner 2 objets dans la méthode 1 est parce que c'est une méthode DAO qui interroge la base de données et génère 2 objets en se basant sur les données de la requête. Je ne veux pas le casser en 2 méthodes, car je ne veux pas de requête de la db à deux fois si je n'ai pas besoin d'.

Pourquoi ne DataExporterPerson pas extends Person? Ensuite, vous pouvez utiliser un Collection<Person>.
Je vais juste le lien vers cette SORTE de réponse concernant l'absence de la Paire en Java: stackoverflow.com/questions/156275/...
C'est généralement une mauvaise idée pour une méthode unique de faire deux choses. Pouvez-vous comprendre pourquoi une méthode il faut deux valeurs de retour?
Il ne peut pas faire deux choses; il peut faire une chose et de revenir à 2-tuple.
Question mise à jour avec la raison pour essayer de le retourner 2 objets dans la méthode 1.

OriginalL'auteur Catfish | 2013-08-09