So come il compilatore interpreta la parola chiave finale in Java, ma come dovremmo noi programmatori interpretare il suo significato? Dovrebbe essere:interpretazione variabile finale
1) Questa variabile non può essere modificato (utilizzato da classe interna, per esempio)
o
2) Non ho intenzione di cambiare questa variabile (potrebbe avere un po 'di ottimizzazione benefici per le variabili membro).
Mi sto chiedendo perché ho lavorato sul codice dove tutto è dichiarata finale di default (sopra l'opzione 2), che, a mio parere, svaluta la parola chiave e nasconde i valori che davvero non può cambiare! Ci sono ancora benefici per le prestazioni nel dichiarare le variabili finali?
Accetto questo per le variabili membro, per quanto riguarda le variabili locali e parametri? Sicuramente c'è poco vantaggio nel contrassegnarli come finali, a meno che non debbano davvero essere? – StuPointerException
C'è un vantaggio durante la lettura/mantenimento del codice. –
L'unica lamentela che ho con 'final' è che ho bisogno di scriverlo del tutto. Ad esempio, emette le firme dei metodi, quindi non lo uso lì. Invece ho un avvertimento del compilatore di un parametro che cambia. –