Я читал source code of TextView, и я встретил этот фрагмент кода:Android Итоговая Переменные
RectF mTmpRectF = new RectF();
float[] mTmpOffset = new float[2];
ExtractedTextRequest mExtracting;
final ExtractedText mTmpExtracted = new ExtractedText();
Итак, они определяют mTmpExtracted как окончательные, но не mTmpRectF.
Я прочел это What does "final" do if you place it before a variable?, где анализируется, когда использовать окончательный.
Таким образом, поскольку оба объекта (mTmpRectF & mTmpExtracted) могут быть окончательными в данном конкретном случае, есть ли другая причина (то есть performace и т. Д.), Что только один из них установлен в final или это просто код стиля разработчика?
Спасибо!
Таким образом, за исключением случаев, когда требуется присвоение конечной переменной, это является видом ограничения/предупреждения для разработчика, что он не должен изменять эту переменную? –
Да, он заявляет, что это его окончательное состояние по какой-то причине. – Blundell