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 赋值

解决方案 »

  1.   

    http://community.csdn.net/Expert/TopicView1.asp?id=3222720
      

  2.   

    final变量确实是经过赋值后
    就不能再改变不过
    你可以先申请,但是赋值只能在
    构造方法里
      

  3.   

    匿名内部类访问外部类的变量时,该变量要用final修饰啊,并且不能修改该变量,
    setText并不是赋值啊,而是设置属性。
      

  4.   

    final的用法是在java中声明类,变量,方法时的一个关键字。
    如果声明的变量初始化后此变量的值不能改变,像c或c++的常量一样,
    如果声明类时是禁止用此类作别的类的父类,也就是禁止继承。
    如果声明方法就是如果此类做为别的类的父类时,此final方法不能在子类中重载。在匿名类访问外部类的变量时改变量必须是final,试想一下,如果一个匿名类在访问这个外部类的变量int a 时,第一次访问时a = 1 如果这时又有一个类访问这个变量把a重新赋值改为a = 10如果在匿名类后面再访问a 时将会出现什么现象!