2017-08-07 2 views
-1

Disons que j'ai un Person-Object a avec prénom = Ronald et name = null.Enrichir les valeurs de l'objet

public class Person { 
    private String firstName; 
    private String name; 
} 

Et j'ai besoin d'enrichir les valeurs vides avec des valeurs d'un autre objet .. Personne b avec prenom = « Matt » et nom = « Kingley »

Ainsi, le résultat devrait être une personne prenom : Ronald mais le nom "Kingley"

Quelle est la meilleure façon de faire cela? Y a-t-il de bons cadres pour cela?

Merci à l'avance

+0

Je ne comprends pas vraiment votre problème, pourriez-vous nous en dire un peu plus? 'If (personA.firstname == null) personA.firstname = personB.firstname; if (personA.name == null) personA.name = personneB.name; ' –

+0

Oui, mais ce n'est qu'un exemple simple. Je veux le rendre générique, de sorte que par exemple si vous avez une classe avec 50 champs que vous n'avez pas pour chaque champ. – user1345883

+0

Pourquoi ne pas commencer par les valeurs initiales pour tous les champs concernés? –

Répondre

0

Je voudrais juste mettre en œuvre une méthode dans la classe qui gère ce. Toutefois, les objectifs de ce sont assez flou, essayez-vous de remplir le nom au cas où il n'a pas été rempli?

Si oui il suffit d'écrire dans le constructeur qui prend Sonly un paramètre que vous souhaitez attribuer le nom à une constante (ou quelque chose d'autre?)

public Person(String firstName){ 
    this.firstName = firstName; 
    this.name = "DefaultName"; 
} 

Sinon, vous risquez de mettre en œuvre une méthode de fusion (question encore peu claire donc cela pourrait ne pas être ce que vous cherchez):

public void mergePersonIfNull(Person person){ 
    if (this.lastName == null) 
     this.lastName = person.getLastName(); //Assuming you have getters 
    //same for firstname 
} 

de plus, si vous n'êtes pas faire usage de la comparaison nulle, supprime et forcer le remplacement.

Quoi qu'il en soit, peut-être préciser vos usages et je serai plus précis car je ne suis toujours pas sûr d'avoir compris la question.