Da quando ho scoperto i poteri della final
parola chiave in Java qualche anno fa, mi ha aiutato a rendere i miei codici molto più leggibili, poiché le persone possono facilmente vedere quali sono le variabili di sola lettura. Potrebbe anche fornire un piccolo impulso alla JIT, e sebbene sia molto limitata, non può nuocere, specialmente quando si prendono di mira dispositivi embedded come piattaforme Android.
Ma soprattutto, contribuisce a rendere un design più robusto alle modifiche e guida altri committer quando devono modificare la base di codice.
Tuttavia, mentre sfogliavo parte del codice sorgente JDK, non mi sono mai imbattuto in questa parola chiave, né per classi, metodi o variabili. Lo stesso vale per vari sistemi che ho dovuto rivedere.
C'è una ragione? È un paradigma di design comune lasciare tutto mutabile dall'interno?
final
campi ha la stessa semantica della scrittura di unvolatile
campo, e quindi leggerli in un secondo momento deve avere una semantica di lettura volatile, questo non è sempre quello che vuoi