java effectively final
时间: 2023-09-20 09:13:41 浏览: 130
java提示框final
在Java中,"effectively final" 是指一个局部变量虽然没有被声明为final,但其值在初始化之后不会再被修改。在Java 8之前,如果你想在匿名内部类或内部类中引用一个局部变量,你必须将这个局部变量声明为final。然而,从Java 8开始,如果一个局部变量在初始化之后没有被修改,它也被认为是"effectively final",就可以被引用在匿名内部类或内部类中,而无需显式地将其标记为final。
这个改变的目的是为了简化代码,减少使用final关键字的需求。如果一个局部变量是"effectively final",编译器会自动帮你将其转换为final。
需要注意的是,如果你在初始化之后尝试修改一个"effectively final"的局部变量,编译器会报错。因此,确保局部变量的值在初始化之后不会再被修改,以便能够在匿名内部类或内部类中引用它们。
阅读全文