黑马程序员技术交流社区

标题: 从内部类中访问局部变量的问题 [打印本页]

作者: 0ntheroad    时间: 2016-3-20 16:15
标题: 从内部类中访问局部变量的问题
老师说java1.8不用加final,我试了一下。
  1. class InnerClass {
  2.         public static void main(String[] args) {
  3.                 Outer o = new Outer();
  4.                 o.method();
  5.         }
  6. }

  7. class Outer {
  8.         public void method() {
  9.                 int num = 10;
  10.                 class Inner {
  11.                         public void print() {
  12.                                 System.out.println(num);
  13.                         }
  14.                 }
  15.         
  16.         num++;
  17.                 Inner i = new Inner();
  18.                 i.print();
  19.         }
  20. }
复制代码

大家注意,我在方法变量中对局部变量进行了再次赋值。
编译时报错:
从内部类中访问局部变量需要最终类型或世界上的最终类型。

我认为实际上在这种情况下局部变量不管有没有加上final,编译时都按final处理,并不是老师说的bug问题。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2