保证局部变量在匿名内部类内外都不会被修改。因为匿名内部类内部,实际上是复制了一份局部变量,然后在匿名内部类中使用。如果不设置为final,局部变量在外部被修改,会导致与匿名内部类之内的副本不一致,逻辑上说不通。所以Java虚拟机这么设计,强制设置局部变量为final,语义上保持一致性。
1200字范文,内容丰富有趣,写作的好帮手!
时间:2018-09-13 16:23:47
保证局部变量在匿名内部类内外都不会被修改。因为匿名内部类内部,实际上是复制了一份局部变量,然后在匿名内部类中使用。如果不设置为final,局部变量在外部被修改,会导致与匿名内部类之内的副本不一致,逻辑上说不通。所以Java虚拟机这么设计,强制设置局部变量为final,语义上保持一致性。