我为什么可以改变final数据
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 {
final List mylist= new List(5,true);
//////////////////
final Label 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);
////////////////////////////
}
}
});
}
}
在////////////////中的数据为fianl
我如果将final去掉.程序出错
说内部类访问的数据要设置为final
我加拉fianl 程序运行正常,listStatus显示的数据可以修改