我们平时使用内部类时,如果需要使用外部的变量,只能通过final关键字来修饰该变量,在java8中,有了新的处理方式,如下:

针对于jdk1.8,对于一个变量,如果没有给它加final修饰,而且没有对它的二次赋值,那么这个变量就是effectively final(实际上的最终变量)。

那么具体场景怎么使用呢?

我们定义了一个变量A,并且根据不同条件在修改这个变量A的值,然后我们在内部类中需要使用这个变量A的时候,重新定义一个变量B,把A赋值给B,在内部类中使用B即可,此时B就是effectively final。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐