为了账号安全,请及时绑定邮箱和手机立即绑定

关于方法内部类的问题

为什么我在外部类的方法里定义 一个局部变量 a 在方法内部类中的方法中使用 eclipse提示要把变量a 变为常量+final??  局部变量应给在这个方法中可以使用 即使是在内部类的方法中也是啊??为啥 求解??

正在回答

5 回答

我知道了 在百度上找到了  基本常识:Java中方法内定义的内部类可以访问方法中的局部变量,那么局部变量必须要用final修饰

0 回复 有任何疑惑可以回复我~
#1

ElijahYang

学习了
2016-03-05 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//56daed2a000144d205110287.jpg???

0 回复 有任何疑惑可以回复我~
#1

dkfjl23 提问者

可以运行吗??我在百度上找到了都是说方法内的内部欸访问方法中的局部变量,局部变量要用final修饰的。。
2016-03-05 回复 有任何疑惑可以回复我~
#2

dkfjl23 提问者

一个类中的内部类,其实这个内部类相对这个类就和以他方法和属性一样的。只是内部类的生命周期和这个类的属性生命周期是不同的。 在内存中,类的属性会被分配到栈中的。当调用结束的时候就会退栈,也就是说在内存中这个属性就消失了。内部类也是类,只用在内存 中对他的引用消失了才会死亡的内部类,这个时候内部类调用类中已经结束调用的属性是不可能的。也就是说局部类的生命周期超过了类的 局部变量。解决的办法就是在局部变量前加上final,这样类中属性就会被分配在堆内存中,生命周期是和工程的生命周期一样了,其内部类 就可以调用了。
2016-03-05 回复 有任何疑惑可以回复我~
#3

精慕门7323155 回复 dkfjl23 提问者

太难断句了
2016-03-13 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//56dae7670001636104270203.jpg代码图

0 回复 有任何疑惑可以回复我~

这个是代码 只要在 int l前面加上 final 就可以运行 不知道真么回事~~

0 回复 有任何疑惑可以回复我~

按说应该是可以的,请把代码截图啊

0 回复 有任何疑惑可以回复我~
#1

dkfjl23 提问者

代码图发了,帮忙看下啊,谢谢了。
2016-03-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于方法内部类的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信