吴上储 发表于 2011-12-14 00:22 ![]()
因为编译器不允许你在匿名内部类里改变外部类的局部变量,所以要求为final的.
这是因为局部变量的生命周期 ...
比如下面:final Iterator<FileInputStream> it=arr.iterator();
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>() {
public FileInputStream nextElement() {
// TODO Auto-generated method stub
return it.next();
}
public boolean hasMoreElements() {
// TODO Auto-generated method stub
return it.hasNext();
}
};
其中的 it 被final修饰,怎么看其中的匿名类呢,Enumeration应该是接口啊? |