J'ai une méthode privée Java et j'essaie de trouver le meilleur moyen de créer un objet à l'intérieur de la méthode. Voici deux approches différentes que j'essaye:
private void createObject() {
Object A = new Object()
if (conditionA) {
//do some action X with Object A
} else {
//Do something without Object A
if (conditionB) {
return;
}
//do some action Y with Object A
}
return;
}
4 Réponses :
Je pense que si vous souhaitez initialiser l'objet avec valeur par défaut em>, vous devez le faire dans le lieu de déclaration
approche A est meilleur. P>
En cela, considérez «si» la condition n'est pas satisfaite et cela passe dans «autre». P>
là si conditionné est satisfait, il retournera que la mémoire.So n'est pas allouée à un. p>
Dans l'approche B, une allocation de mémoire inutilement est effectuée qui n'est pas utilisée dans le scénario ci-dessus. P>
J'irais avec une approche A, car il est seulement nécessaire d'initialiser l'objet en cas de besoin.
Si l'initialisation de cet objet est plutôt compliquée, afin d'éviter de vous répéter, vous définissez soit un et ensuite à deux endroits Lorsque l'objet est censé être créé, vous faites p> (note que les variables sont généralement écrites en minuscules / camelcases). P> P> statique code> méthode assistant afin d'initialiser l'objet ou de vous passer via un fournisseur <> code>: p>
Je pense que cela n'arrête pas de la question de la question, opt spécifiquement ses problèmes et ses solutions possibles.
Écrivons la table de vérité Je pense que cela se traduit par: p> Bonne pratique consiste à réduire la portée des variables comme beaucoup aussi possible. Et si l'instanciation est chère, vous souhaitez également réduire le nombre de fois que vous l'instanciez.
Ici, l'objet a code> est uniquement initialisé si nécessaire et sa portée est aussi petite que possible (un seul si em> bloc) p> p> p>
Les font quelque chose B> sont deux choses différentes. Édité ci-dessus. Ma faute
Dites-nous plus sur votre cas d'utilisation prévu et le problème que vous essayez de résoudre à la place. Peut-être que vous avez trop compliqué la question.