48 votes

Rendre les méthodes privées finales?

Est-il avantageux de rendre les méthodes privées définitives? Cela améliorerait-il les performances?

Je pense que "final privé" n'a pas beaucoup de sens, car une méthode privée ne peut pas être ignorée. La méthode devrait donc être efficace, comme lors de l'utilisation de final.

Et serait-il préférable de rendre une méthode d'assistance privée statique (lorsque cela est possible)?

Quel est le meilleur à utiliser?

   private Result doSomething()
  private final Result doSomething()
  private static Result doSomething()
  private static final Result doSomething()
 

66voto

L'ajout d' final pour les méthodes, il n'est pas d'améliorer les performances avec le Soleil HotSpot. Où final pourrait être ajouté, HotSpot remarquerez que la méthode n'est jamais surchargé et donc à traiter de la même.

En Java, private méthodes sont non-virtuel. Vous ne pouvez pas les ignorer, même en utilisant des classes imbriquées où ils peuvent être accessibles à des sous-classes. Pour les méthodes d'instance de la instructoin pour appeler les soldats est différente de celle utilisée pour les non-privés. L'ajout d' final pour les méthodes privées ne fait pas de cote.

Comme toujours, ce genre de micro-optimisations ne sont pas la peine de passer du temps.

21voto

Binoj Antony Points 7519

private static Result doSomething() , si cette méthode n'utilise aucune variable d'instance. Dans tous les cas, les rendre final n’a aucun sens puisque l’accesseur est privé.

8voto

Chandra Patni Points 9432

Non, ce ne sera pas. les méthodes privées ne sont pas héritées. Donc, les rendre final est une question discutable. Notez également que vous ne devez pas rendre les méthodes définitives pour la performance. JVM est plus intelligent que cela. Ce type d'optimisation n'est pas très utile. Vous devriez rendre les choses finales, privées, privées, protégées, privées, etc. basées sur la sémantique et la conception.

7voto

Alberto Zaccagni Points 11478

Marquer une méthode privée en tant que finale ne change rien, mais cela peut dérouter les développeurs juniors qui regardent votre code. Rester simple.

4voto

Dougman Points 4517

Le développeur IBM travaille: Théorie et pratique de Java: est-ce votre réponse finale? article est un vieux mais bon à propos d'utiliser le mot clé final en Java:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X