Android Окончательные Переменные - PullRequest
7 голосов
/ 17 декабря 2011

Я читал исходный код TextView , и я встретил этот фрагмент кода:

RectF mTmpRectF = new RectF();
float[] mTmpOffset = new float[2];
ExtractedTextRequest mExtracting;
final ExtractedText mTmpExtracted = new ExtractedText();

Итак, они определяют mTmpExtracted как final, но не mTmpRectF.

Я прочитал это Что делает "final", если вы помещаете его перед переменной? , где анализируется, когда использовать final.

Таким образом, поскольку оба объекта (mTmpRectF и mTmpExtracted) могут быть конечными в этом конкретном случае, есть ли какая-либо другая причина (например, производительность и т. Д.), Что только один установлен в конечный или это просто стиль кода разработчика?

Спасибо!

1 Ответ

7 голосов
/ 17 декабря 2011

Я бы сказал, что extractText был установлен в final, поэтому он не может быть изменен после того, как он был извлечен, тогда как кодер не беспокоится, если прямоугольник get модифицирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...