匿名类一定是final类吗
时间: 2024-03-31 19:37:45 浏览: 212
java为什么匿名内部类的参数引用时final?final局部变量的生命周期
不是的,匿名类可以是非final类。但是如果在匿名类中要访问外部类的局部变量,那么该局部变量必须是final的。因为在匿名类中,如果访问外部类的局部变量,那么编译器会在匿名类中创建一个该局部变量的副本,而该副本是final的。如果该局部变量不是final的,那么在匿名类中修改该变量的值,实际上是修改了该局部变量的副本,而不是外部类的局部变量本身,这样会引发一些问题。因此,Java编译器规定在匿名类中访问外部类的局部变量时,该局部变量必须是final的。
阅读全文