public class Person {
private String name ; protected String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
ublic class MethodOverrideTest {
public static void main(String[] args) {
Person person = new Person(){
@Override
public String getName() {
return "123";
}
};
System.out.println(person.getName());
}
}

内部类通常都含有回调,引用那个匿名内部类的函数执行完了就没了,所以内部类中引用外面的局部变量需要是final的,这样在回调的时候才能找到那个变量,而如果是外围类的成员变量就不需要是final的,因为内部类本身都会含有一个外围了的引用(外围类.this),所以回调的时候一定可以访问到。

例如下面:

private Animator createAnimatorView(final View view, final int position) {
MyAnimator animator = new MyAnimator();
animator.addListener(new AnimatorListener() {
@Override
public void onAnimationEnd(Animator arg0) {
Log.d(TAG, "position=" + position);
}
});
return animator;
}

内部类回调里访问position的时候createAnimatorView()早就执行完了,position如果不是final的,回调的时候肯定就无法拿到它的值了,因为局部变量在函数执行完了以后就被回收了。

最新文章

  1. Adb connection Error:远程主机强迫关闭了一个现有的连接
  2. SQL数据库: 错误2812 未能找到存储过程 sp_password
  3. (转)awk实例练习(一)
  4. 颜色之RGBA
  5. 关于group by【转载】
  6. ACM:回溯,八皇后问题,素数环
  7. 使用commons-csv简单读写CSV文件
  8. 接口测试工具-Jmeter使用笔记(六:从文本读取参数)
  9. JVM 内部原理(六)— Java 字节码基础之一
  10. vue2.0 移动端,下拉刷新,上拉加载更多 插件
  11. windows 7 开启无线wifi
  12. 采用DTO和DAO对JDBC程序进行进一步优化
  13. 在普通Java类里使用spring里注入的service、dao等
  14. mysql 配置数据库主从同步
  15. JS修改标签中的文本且不影响其中标签
  16. textarea文本域的高度随内容的变化而变化
  17. tcp-full.cc
  18. maven常用依赖总结
  19. vue项目中禁止移动端双击放大,双手拉大放大的方法
  20. CodeForces-999D Equalize the Remainders

热门文章

  1. CodeForces-734E Anton and Tree 树的直径
  2. 寻找总和为n的连续子数列之算法分析
  3. BZOJ5281:[Usaco2018 Open]Talent Show
  4. 洛谷 2822 组合数问题——质因数有关的dp
  5. 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
  6. hdu 1074 状态压缩
  7. 在浏览器中输入url并回车后发生了什么?
  8. Java常见设计模式之责任链模式
  9. 【转载】ruby 中数组函数示例(1)(转)
  10. iOS开发者福利之精品源码汇总!免费下载