fun(final int seconds){
// final int i[] = {seconds}; //这样定义确实感觉很别扭
setTimer(new Timer());TimerTask task = new TimerTask() {
int i = seconds; //可以定义变量到内部内来直接操作,不用在内部类外部定义final数组了
@Override
public void run() {i--;...}}
}
1、匿名内部内访问外部内局部变量必须是final
解析: 外部局部变量的生命周期可以早已结束,所以为了保持访问一致,使用final
2、匿名内部类变量操作,直接定义在匿名内部类就可以了
解析:匿名内部类的变量操作,没有必要定义在外部