局部内部类访问的局部变量不必用final修饰,java8中
2016-08-13 21:08
375 查看
java8中,局部内部类访问的局部变量不必用final修饰,这一点和Java7是不一样的。
下面这段代码在Java8中是正确的:
然而,在Java7中,这段代码不能通过编译,会报如下错误:
Cannot refer to a non-final variable wordYouSay inside an inner class defined in a different method
这算是Java8(编译器)提供的一项改进吧。想想,总是要无缘无故给传给局部内部类的局部变量添加一个final修饰,也确实有点儿恼人,这点儿改进多少让人省点心(语法糖的妙处)。
转载自:http://blog.csdn.net/l294265421/article/details/50448339
下面这段代码在Java8中是正确的:
public class LocalInnerClassTest { public static void main(String[] args) { LocalInnerClassTest.echo("I like ..."); } public static void echo(String wordYouSay) { class Person { public void say() { System.out.println(wordYouSay); } } Person person = new Person(); person.say(); } }
然而,在Java7中,这段代码不能通过编译,会报如下错误:
Cannot refer to a non-final variable wordYouSay inside an inner class defined in a different method
这算是Java8(编译器)提供的一项改进吧。想想,总是要无缘无故给传给局部内部类的局部变量添加一个final修饰,也确实有点儿恼人,这点儿改进多少让人省点心(语法糖的妙处)。
转载自:http://blog.csdn.net/l294265421/article/details/50448339
相关文章推荐
- Java8中 局部内部类访问的局部变量不必用final修饰
- Java--局部内部类在访问他所在方法中的局部变量必须用final修饰
- JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
- 为什么匿名内部类和局部内部类只能访问被final修饰的局部变量?
- Java 局部内部类访问局部变量必须加final关键字
- 局部内部类只能访问方法内被final修饰的局部变量
- JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
- JavaSE8基础 局部内部类访问 用final修饰的局部变量
- Java 局部内部类访问局部变量必须加 final 关键字
- java中内部类访问局部变量的时候,为什么变量必须加上final修饰
- “局部内部类只能访问被final修饰的局部变量”的解释
- 于java里方法的内部类只能访问被final修饰的局部变量和.
- Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释
- 局部内部类只能访问被final修饰的局部变量
- 为什么Java匿名内部类访问的外部局部变量或参数需要被final修饰
- Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释
- JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
- 局部内部类 局部内部类访问局部变量必须用final修饰
- 局部内部类访问方法的参数和局部变量必须是final的
- 局部内部类为什么访问方法中的局部变量时局部变量要加final