当前位置: 代码迷 >> J2SE >> Java中的匿名内部类怎么与外部类交互
  详细解决方案

Java中的匿名内部类怎么与外部类交互

热度:87   发布时间:2016-04-24 01:00:37.0
Java中的匿名内部类如何与外部类交互?
现在有一个匿名的内部类要利用外部类中的局部变量(内部类也在此函数中定义),读取局部变量并要重新赋值局部变量,但是貌似内部类只能利用外部类中的final变量,但是final变量又不能多次赋值。。。。
  啊,好烦好烦。。。
  求方法。。。


------解决方案--------------------
常规做法确实只能如此了,或者不要限制于局部变量,或者老老实实定义该类(不要匿名)。
------解决方案--------------------
探讨

常规做法确实只能如此了,或者不要限制于局部变量,或者老老实实定义该类(不要匿名)。

------解决方案--------------------
不使用匿名内部类,使用成员内部类就可以很方便的访问需要更改的属性了
------解决方案--------------------
Java code
//如果局部变量不需要传出外部类,只是需要使用它的指,//那么可以在内部类定一个属性,然后内部类使用该属性就可以了,如void test() {    final String name = "test";    class inner {        String innername;        {innername=name;} //定一个属性        public void innertest() {             System.out.println(innername); //内部类的方法使用属性        }    };    inner i = new inner();    inner.innertest();}//如果需要内部类修改局部变量,并且能传到外部类,那么//因为final只是不能改变它的指向,但是可以改变它的属性,所以你可以用数组来代替,比如void test() {    final String[] name = {"test"};    class inner {        public void innertest() {            name[0] = "innertest";        }    };    inner i = new inner();    i.innertest();    System.out.println(name[0]);}
  相关解决方案