为什么具有类级别范围的变量再次声明为成员函数中的最终变量?

时间:2017-02-07 04:00:12

标签: java android android-imageview

正如问题所述,当我浏览Sourcecode of android ImageView时,我看到了具有类级别范围的变量private Matrix mDrawMatrix = null;,并且该变量的值再次被分配给成员中的最终变量函数(final Matrix matrix = mDrawMatrix;)。这是函数,

 private boolean isFilledByImage() {
    if (mDrawable == null) {
        return false;
    }

    final Rect bounds = mDrawable.getBounds();
    final Matrix matrix = mDrawMatrix;
    if (matrix == null) {
        return bounds.left <= 0 && bounds.top <= 0 && bounds.right >= getWidth()
                && bounds.bottom >= getHeight();
    } else if (matrix.rectStaysRect()) {
        final RectF boundsSrc = mTempSrc;
        final RectF boundsDst = mTempDst;
        boundsSrc.set(bounds);
        matrix.mapRect(boundsDst, boundsSrc);
        return boundsDst.left <= 0 && boundsDst.top <= 0 && boundsDst.right >= getWidth()
                && boundsDst.bottom >= getHeight();
    } else {
        // If the matrix doesn't map to a rectangle, assume the worst.
        return false;
    }
}

将mMatrix的值再次分配给函数内的最终变量。分配这样的变量有什么好处。

我们99%的人不知道是谁为图像视图编写了代码,但如果是编码实践或者有任何优势或有人有解释:-)请分享。提前感谢好奇的编码员。 : - )

0 个答案:

没有答案