问题标签 [anonymous-inner-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何访问匿名内部类中容器类的私有类成员?
如何从 AbstractActionClass 中访问包含函数 initTimer() 的类的所有成员字段?
谢谢
java - 匿名类难题
我想我了解匿名课程的基础知识,但我想澄清一些事情。当我有这样的语法时
如果匿名类实际上是A类的内部类,如第一个例子:理论上,语义对吗?
究竟会发生什么?我认为在编译 java 文件时,会为匿名类创建一个 .class 文件,以便可以引用它(但我找不到它)。当实例化 A 的对象时,它会创建一个按钮对象,然后 btn 调用 addActionListener() 方法,该方法实际上传递了类似这样的东西btn.addActionListener(new AnonymousClassOne())
AnonymousClassOne 编译器给出的通用名称。
如果不是,会发生什么?谢谢。
java - 允许从 OnClickListener 非最终变量修改对象
我有一个适配器,用于加载我的用户和一个按钮/文本文件用于发送邀请。在适配器中,我这样做:
在 addButton2Invite 的方法上,我将邀请发送为:
当 networkWork 正常时,我想设置,ua.setInvited("true");
但如果我不将 ua 声明为final
. 但是我不能改变它的值,下次适配器进入 getView 时会发现ua.getInvited() = "false"
. 当我向下/向上滚动时,文本视图和按钮出现在行上。
有什么想法可以更改 ua 中的对象 UserAgenda ua 的值onClicklistener
吗?
谢谢!
java - 匿名内部类:它们何时(不)合适?
举个例子。有一个我想使用的对象,称之为Doodad
. Doodad
元素对浏览器事件的处理效果不佳。a 的典型实例化Doodad
是Doodad someDoodad = new Doodad();
. 显然这不适合我的需要,因为糟糕的事件处理。我是否适合重写该onBrowserEvent()
方法,如下所示:
显然这是一个简单的例子,但是我什么时候不想使用匿名内部类呢?它是否曾被明确禁止或不可能?
我看到很多关于第一个问题的答案,但到目前为止没有一个答案回答第二个问题:是否曾明确禁止或不可能使用匿名内部类?
java - 如何在匿名内部类中使用外部方法的输入?
例如,我如何在我的 Anonymou 内部类中使用输入“hasTypedSomeToken”如下 -
java - 匿名内部类在访问其原语等时是否总是捕获对“this”(外部)对象的引用?
如果我有
[编辑:添加了“内部”的类型定义]
是否将调用将该特定对象的变量inner.execute()
设置为,无论从何处调用它,只要该对象存在?或者它只会更改变量的副本而不影响原始对象?outerInt
Outer
5
Inner
outerInt
Outer
java - 为什么我不能通过“for”循环保存 EnumMap 条目,即使我使用“final”?最好的解决方法?
我有一些奇怪的行为。
[更新:给出完整的可运行示例:]
输出(JavaSE 1.6):
我假设是最终的My entry
,似乎每次都被下一个覆盖。我每次都需要能够捕获正确的条目,因为我将每个项目传递给for
循环内的匿名内部类实例。
[更新:Java 7 中不存在此问题,只有 Java 6(可能更早)]
更新:无论是针对 Java 6 还是 7 编译,我都可能必须让我的代码工作,那么在这两种情况下让它工作的最有效的解决方法是什么?
java - 从匿名内部类访问时,为什么要求局部变量是最终的?
我们都知道你不能做这样的事情:
...没有做a
最后的。我得到了技术原因,这是因为局部变量存在于堆栈中,除非您知道它不会更改,否则您无法安全地制作副本。
然而,我很难看到的是为什么编译器没有实现黑客,所以当它看到上述情况时,它会编译成如下内容:
然后我们就可以安全地从匿名内部类访问 a 并且如果我们愿意的话确实可以更改它。当然,它可能仅在我们实际更改a
. 据我所知,这将是一个相对简单的东西,适用于所有类型并且允许a
从任何上下文中改变。当然,上述提议可以更改为对多个值使用合成包装类或其他更有效的方法,但想法是相同的。我猜对性能的影响很小,但我怀疑这会过度,尤其是在引擎盖下有更多优化的潜力。除了可能依赖于合成字段的某些反射调用以某种方式破坏之外,我看不到很多缺点,但我从未听说过它被认真提出!有什么原因吗?
java - Java中外部类的访问变量
在 Java android 应用程序中,我如何从内部匿名类访问外部类的变量?例子:
java - 从匿名内部类中跳出一个方法
我有一个方法:
事情是这样的,如果我的代码到达ESCAPE
(即用户决定不覆盖),我想完全退出该方法。我试过了...
- 更改
someMethod()
为返回一个布尔值,然后从否定按钮返回它,但它不会让我因为它在一个 void 内部方法中。 - 抛出异常从
ESCAPE
外部捕获,但编译器不会让我因为DialogInterface.OnClickListener
不抛出。 - 使用
break
语句离开for
循环,但这也不起作用。
for
简单地离开循环也是可以接受的。我可以解释这一点。我已经尝试了所有我能找到的东西,但我已经无能为力了。