Bonjour,
ect quil ya une difference(du point de vue performance) entre les deux codes:
Code:for ( Object obj : objectList )
MerciCode:for ( final Object obj : objectList )
Version imprimable
Bonjour,
ect quil ya une difference(du point de vue performance) entre les deux codes:
Code:for ( Object obj : objectList )
MerciCode:for ( final Object obj : objectList )
A priori non, le bytecode devrait être le même.
Bonjour,
Non je ne pense pas,
Par contre je t'invite à lire ce billet.
Dans ce cas précis, probablement pas.
Cependant, c'est une bonne pratique que de le mettre. Ceci évitera à d'autres codeurs de se tromper lorsqu'ils tenteront de changer éventuellement la variable.
Au niveau performance non, encore que le bytecode puisse éventuellement être optimisé quand la variable est déclaré final : exécution en parallèle, cependant l'environnement d'exécution devrait aussi pouvoir se rendre compte que l'on ne touche pas à la variable.
L'intérêt du final est de permettre la création de classe interne dans la boucle for.
Est ce qu'il s'agit d'une partie critique de ton programme, dans ce cas il n'est peut être pas nécessaire d'utiliser des objet.
Euh, l'intérêt premier du final est d'empêcher de redéfinir la variable, ce qui entre autre permet d'y accéder dans des classes internes, oui, mais est aussi un intérêt en soi.
Il paraît que c'est une bonne pratique d'utiliser final quand on ne compte pas redéfinir une variable. Moi je dis que ça complique le code, mais bon...
Bonjour,
Je pense que c'est une question de gout, ajouter final ne complique rien, au contraire ça évite les erreurs. Dans 90% des cas une référence devrait être final.
Attention, final marque la référence et non pas l'instance. C'est pas parce qu'une référence est final qu'elle deviendra immuable si elle ne l'est pas.