2011-12-16 12 views
7

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!

risposta

7

Direi che il testo estratto è stato impostato su final in modo che non possa essere modificato dopo che è stato estratto, in cui il codice non viene disturbato se il rettangolo viene modificato.

+0

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? –

+1

Sì, sta dichiarando che questo è il suo stato finale per un motivo. – Blundell

Problemi correlati