这个错误翻译一下,就是说变量“i”是从内部类中访问的,需要是final或有效的final
当时的代码如下:
内部类使用外部的局部变量时,因为外部的局部变量随着生命周期的结束而销毁,但内部类的生命周期还未结束,还在使用该变量,这样子就会造成内外不一致。在jdk8之前,需要在该变量前面加上final,但是在jdk8之后,如果不涉及到变量的引用改变,则jdk会默认加上final。查看class文件如下:
这个错误翻译一下,就是说变量“i”是从内部类中访问的,需要是final或有效的final
当时的代码如下:
内部类使用外部的局部变量时,因为外部的局部变量随着生命周期的结束而销毁,但内部类的生命周期还未结束,还在使用该变量,这样子就会造成内外不一致。在jdk8之前,需要在该变量前面加上final,但是在jdk8之后,如果不涉及到变量的引用改变,则jdk会默认加上final。查看class文件如下: