web-dev-qa-db-fra.com

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()
48
deamon

L'ajout de final aux méthodes n'améliore pas les performances avec Sun HotSpot. Là où final pourrait être ajouté, HotSpot remarquera que la méthode n'est jamais remplacée et la traitera donc de la même manière.

En Java, les méthodes private ne sont pas virtuelles. Vous ne pouvez pas les remplacer, même en utilisant des classes imbriquées où elles peuvent être accessibles aux sous-classes. Par exemple, les méthodes pour appeler des utilisateurs privés sont différentes de celles utilisées pour les non-utilisateurs privés. L'ajout de final à des méthodes privées ne donne aucune chance.

Comme toujours, ce type de micro-optimisation ne vaut pas la peine d’y passer du temps.

66

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é.

21
Binoj Antony

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. 

8
Chandra Patni

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.

7
Alberto Zaccagni

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:

4
Doug Porter

En rendant la méthode finale, nous ne pouvons pas remplacer la méthode. Puisque les méthodes privées ne sont pas accessibles en dehors de la classe. Il n’ya aucun sens de rendre la méthode finale et privée. Cela peut frapper la performance.

0
giri