Java匿名内部类访问外部类的局部变量,那么这个局部变量需要用final修饰吗?
为什么我的测试没有用final却可以?
4条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
cloudyzhao 2017-07-21 00:51最佳回答 专家已采纳如果你的变量只做读取是可以不用显式的声明为final类型 但是有修改操作就会报错 谢谢
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(3条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2017-07-20 19:18回答 4 已采纳 如果你的变量只做读取是可以不用显式的声明为final类型 但是有修改操作就会报错 谢谢
- 2017-04-21 11:47回答 2 已采纳 你把变量绑定到final,也可以在匿名类中访问。或者直接做参数传递进去
- 2017-03-13 15:28回答 1 已采纳 http://blog.csdn.net/mark_to_win/article/details/38821033
- 2021-03-17 16:44会写诗的杨万里的博客 对于Java语言中的final使用,大家应该很...一、问题的提出Java编程中,使用匿名内部类访问外部方法的局部变量是一件很常见的事件,比如以下代码,使用匿名内部类设置控件的监听器是再常见不过了,下面的例子中,因...
- 2021-03-06 17:46拾月瓣的博客 1. 内部类里面使用外部类的局部变量时,其实就是内部类的对象在使用它,内部类对象生命周期中都可能调用它,而内部类试图访问外部方法中的局部变量时,外部方法的局部变量很可能已经不存在了,那么就得延续其生命,...
- 2021-08-03 15:37风随心飞飞的博客 (1)内部类里面使用外部类的局部变量时,其实就是内部类的对象在使用它,内部类对象生命周期中都可能调用它, 而内部类试图访问外部方法中的局部变量时,外部方法的局部变量很可能已经不存在了,那么就得延续其生命,...
- 2016-04-10 12:53回答 3 已采纳 首先,这端代码本质上是定义了一个ThreadLocal变量,等价于: ``` private static ThreadLocal counterContext = new ThreadLo
- 2016-03-07 09:38回答 3 已采纳 // public String name; public void say(final String name) { new RunnableWithReturn() { @Over
- 2017-05-19 06:36回答 4 已采纳 @Override public int product() { // TODO Auto-generated method stub return (int) Math.round(M
- 2018-12-21 18:39逍遥剑臣的博客 对于这个问题,首先我们应该明确的一点是对于匿名内部类,它可能引用三种外部变量:外部类的成员变量外部方法或作用域内的局部变量外部方法的参数而第一种变量是不需要声明为final的,但后两种是需要声明为final的...
- 2021-03-17 14:33健玮的博客 外部类看不见方法中的局部内部类(无法直接访问,但是可以当作返回值返回),但是局部内部类可以访问外部类的任何成员以及本方法体中的常量,即用final修饰的成员。方法体中可以访问局部内部类,但是访问语句必须在...
- 2021-08-03 11:27神奇海螺666的博客 我们参考大佬的这篇文章中引用的例子,来看一下匿名内部类访问外部变量的方法: public class Hello { public static void main(String[] args) { String str="haha"; new Thread() { @Override ...
- 2019-02-03 11:27回答 1 已采纳 可以再定义一个类 class MyString { public String str; } 让ReallyUse_Account使用MyString类型。 在你的代码里用 Really
- 2016-12-02 11:00回答 3 已采纳 1.首先,size这里的含义是每个目录的大小,这个getSize()方法返回的就是每个目录的大小,显然是每个目录一个变量是正确的,使用全局的变量 实际上加了好多遍。自己想想,应该不难想明白。
- 2021-11-24 12:01回答 2 已采纳 class out { private: int n; public: class inn { public: void fun(out o) {
- 2019-08-15 23:40快乐的编码小猪的博客 从学习java的时候知道匿名内部类能访问外部类的变量,那为何呢。先从一个最简答的例子开始: public class InnerTest { private int num = 0; public static void main(String[] args) { InnerTest innerTest...
- 2022-02-10 22:01NorthCastle的博客 1.什么是匿名内部类 定义 : 1.匿名内部类是定义在类的局部位置...不能添加访问修饰符,因为匿名内部类也是一个局部变量; * 3.作用域 : 仅在定义它的方法或代码块中有效; * 4.匿名内部类 访问 外部类的成员的方式
- 2021-01-20 03:36内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 内部类的共性 (1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。 ...
- 2016-12-03 11:16回答 3 已采纳 如果你使用成员变量,那么你就不要返回值,因为每次都将获得的文件大小累加到成员变量size上了。但很显然你使用成员变量的同时又返回了值。 比方说: 第一次查找到一个文件,大小是 100 byte,s
- 2018-04-16 17:30HeatDeath的博客 Java 8 之前,匿名内部类中使用 局部变量,需要强制使用 final 修饰 Java 8 开始匿名内部类使用的外部变量不再被强制用final修饰。 外部变量要么是final的;要么自初始化后值不会被改变 这两种都是可以在匿名...
- 没有解决我的问题, 去提问