anonymous inner class 只能使用 final 局部变量
但是有 outer class 成员的使用权(无限制)final 代表这样不行:
final Label listStatus = new Label("this is this list status");
/* Can't do this
final Label listStatus = new Label("Again");
*/
final过的变量不能再次赋值listStatus.setText("you select is "+selection);
这句话是方法调用,而不是重新给 listStatus 赋值
但是有 outer class 成员的使用权(无限制)final 代表这样不行:
final Label listStatus = new Label("this is this list status");
/* Can't do this
final Label listStatus = new Label("Again");
*/
final过的变量不能再次赋值listStatus.setText("you select is "+selection);
这句话是方法调用,而不是重新给 listStatus 赋值
解决方案 »
- java static修饰符什么意思?
- 有人知道哪里有支持S F T P的开源的第三那方工具吗?我用java
- java的关于JBuilder2006的问题
- Josephu 问题 删除链表老是删不了,请帮忙分析下哪里错了? thx
- 为什么这个程序在编译时会出现这个问题????
- 如何在一个窗口大小变化的时候得到通知?
- IO操作,FileOutputStream ,PrintWriter 输出怪异
- 在Java程序中访问数据库大对象的问题
- 关于运行JAVA exception in thread "mian"
- 菜鸟问题,怎么LinkedList比ArrayList添加元素还要慢啊??
- VJ++开发软件问题!!!
- 如何把String转换成double型?
就不能再改变不过
你可以先申请,但是赋值只能在
构造方法里
setText并不是赋值啊,而是设置属性。
如果声明的变量初始化后此变量的值不能改变,像c或c++的常量一样,
如果声明类时是禁止用此类作别的类的父类,也就是禁止继承。
如果声明方法就是如果此类做为别的类的父类时,此final方法不能在子类中重载。在匿名类访问外部类的变量时改变量必须是final,试想一下,如果一个匿名类在访问这个外部类的变量int a 时,第一次访问时a = 1 如果这时又有一个类访问这个变量把a重新赋值改为a = 10如果在匿名类后面再访问a 时将会出现什么现象!