stavo leggendo il source code of TextView e ho incontrato questo frammento di codice:Variabili Android finali
RectF mTmpRectF = new RectF();
float[] mTmpOffset = new float[2];
ExtractedTextRequest mExtracting;
final ExtractedText mTmpExtracted = new ExtractedText();
Quindi, ci definiscono mTmpExtracted come finale, ma non mTmpRectF.
Ho letto questo What does "final" do if you place it before a variable? dove viene analizzato quando utilizzare finale.
Quindi poiché entrambi gli oggetti (mTmpRectF & mTmpExtracted) potrebbero essere definitivi in questo caso specifico, c'è qualche altra ragione (ad esempio, performace, ecc.) Che solo uno è impostato su final o è solo uno stile di codice sviluppatore?
Grazie!
Quindi, tranne quando è necessario, l'assegnazione di un valore finale a una variabile è una sorta di limitazione/avviso allo sviluppatore che non dovrebbe modificare questa variabile? –
Sì, sta dichiarando che questo è il suo stato finale per un motivo. – Blundell