我在看Android中View的实现代码,发现很多成员方法里面都用一个临时的变量来引用成员变量,不知道这样做有什么意义?下面是我摘录的一段代码:publicclassView{...privatestaticclass...
我在看Android中View的实现代码,发现很多成员方法里面都用一个临时的变量来引用成员变量,不知道这样做有什么意义?下面是我摘录的一段代码:
public class View {
...
private static class ScrollabilityCache implements Runnable {
/**
* Scrollbars are not visible
*/
public static final int OFF = 0;
/**
* Scrollbars are visible
*/
public static final int ON = 1;
/**
* Scrollbars are fading away
*/
public static final int FADING = 2;
...
public final Interpolator scrollBarInterpolator = new Interpolator(1, 2);
...
public void run() {
...
/**********这里用interpolator保存成员变量scrollBarInterpolator!!!!!!!!!!!!!********/
Interpolator interpolator = scrollBarInterpolator;
// Start opaque
interpolator.setKeyFrame(framesCount++, nextFrame, mOpaque);
// End transparent
nextFrame += scrollBarFadeDuration;
interpolator.setKeyFrame(framesCount, nextFrame, mTransparent);
state = FADING;
// Kick off the fade animation
host.invalidate();
}
}
}
}
谢谢您的回复,我想应该也是惯例。
scrollBarInterpolator被定义成public,所以声明成final.
如果不这样,其它类对象可能直接引用并修改它。这和这个类的run方法在独立的线程执行应该没有关系。另外,在View这个类里,也看到了其它没有被声明成final的成员变量,在成员方法里也用临时变量引用了,就像示例中一样。
展开