final声明的是mylist的指向不可以改变,即
不再可以出现mylist = ...这种语句

解决方案 »

  1.   

    那为什么 去掉final 之后程序报错
      

  2.   

    final仅仅表明一旦它指向一个对象, 它就不能再指向其他对象.
      

  3.   

    那为什么 去掉final 之后程序报错
      

  4.   

    匿名内部类访问的外部数据必须要设置为finalfinal listStatus指向新生成的Label对象,不能对其重新赋其他Label对象。当然此时final listStatus所指向的Label对象可通过相应方法更改其自生属性。
      

  5.   

    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;public class Applet1 extends Applet {  List mylist;
      Label listStatus;  public Applet1() {
      }  public void init() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }  private void jbInit() throws Exception {
         mylist= new List(5,true);
        //////////////////
        listStatus = new Label("this is this list status");
        //////////////////
        mylist.add("metre");
        mylist.add("thiste");
        mylist.add("herde");
        mylist.add("htidfj");
        mylist.add("string");    this.add(listStatus);
        this.add(mylist);
        TextField mytext =  new TextField("thisf",10);
        this.add(mytext);
        mylist.addItemListener(           new ItemListener(){
               public  void itemStateChanged(ItemEvent evt){
                    String selection;
                    int selectionNum;
                    if(evt.getStateChange()== ItemEvent.SELECTED)
                   {
                        selectionNum = ((Integer) evt.getItem()).intValue();
                        selection =  mylist.getItem(selectionNum);
                        ////////////////////////////////
                        listStatus.setText("you select is "+selection);
                        ////////////////////////////
                   }      }
        });
    }
    }
    那为什么放在外部类里申明,不放在函数中申明,程序又运行正常
      

  6.   

    anonymous inner class 只能使用 final 局部变量
    但是有 outer class 成员的使用权(无限制)