摘要: 如例中所示,声明了一个局部内部类TimerPrint,这个类中的方法引用了一个局部变量testTxt,必须声明为final!!why?逻辑上:因为该内部类出现在一个方法的内部,但实际编译时,内部类编译为Outer$1TimerPrint.class,这说明,外部类的这个方法和内部类是处于同一级别的。换句话说是两者的生命周期不一样!start被调用后,非final变量也会随之消失,就会出现内部类引用非法!但是作用域范围相关(该内部类的作用域就在该方法体内)。实际做法:java编译器的行为是这样的(前提条件是该变量在内部类中被引用):若定义为final,则java编译器则会在内部类TimerPri 阅读全文
posted @ 2012-01-16 11:12 Atlas's blog 阅读(224) 评论(0) 推荐(0) 编辑