问题标签 [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 - 可运行的内联类声明 - 能够访问外部非最终变量
在下面的代码中,我想知道为什么内联类中的 run() 能够访问外部类变量 - 信号量(即使它没有声明为 final)。
我希望 Eclipse 标记编译错误 - 因为信号量引用未声明为 final
java - Lambda 的行为与匿名内部类不同
在做一些基本的 lambda 练习时,一个明显相同的匿名内部类的输出给了我与 lambda 不同的输出。
情景#1
输出2和2。这里没有什么新鲜事。
但是当我这样做时:
情景#2
输出2和3
问题:两个输出不应该相同吗?我错过了什么吗?
为了完整起见: 场景#3
输出3和3。这里也没有什么新鲜事。
更新:仍然从 1.8.0-b132 获得相同的输出
更新 #2:错误报告: https ://bugs.openjdk.java.net/browse/JDK-8038420
更新#3:该错误已在 javac 中修复,您现在应该能够获得相同的结果。
java - 需要关于方法调用的解释
在下面的代码中:
我知道FilenameFilter
定义和实例化了一个实现接口的匿名类。但是我不明白如何在accept
不直接调用的情况下调用该方法。
java - Access an instance of a class from anonymous class argument
I can't seem to find an answer to this through all the anonymous inner class questions on the site.
My login frame takes in an ActionListener
. How do I access login
from within the new ActionListener()
?
Right now I'm getting an error:
Variable login may not have been initialized.
java - 创建扩展其他类的内部匿名类
我知道这有效:
它创建了一个隐式扩展AbstractClass
类的对象(显然是abstract
)。
但是下面的工作也可以吗?
ConcreteClass 是一个不是abstract
.
java - 对匿名类与匿名内部类感到困惑
我去寻找学习如何在 Java 中执行 lambda 表达式,但我却遇到了困惑。所以我对匿名类的理解是这样的:
之前看到过匿名内部类这个词,但当时还不知道什么是正规匿名类。我看到的很多线程和视频似乎都将匿名内部类称为“匿名类”。它们是同义词吗?我对匿名内部类的理解是:
所以本质上,不必为 Square 编写一个子类,然后重写 calculatePerimeter() 方法,我可以只创建一个一次性的 square 类,然后重写他们的方法。它是否正确?
因此,匿名内部类与继承有关。我不明白它的用途。也许是因为我以前从未使用过它们,或者因为我没有太多的编程经验。你可以给我例子或解释什么时候有用吗?
更新:当我将匿名内部类的代码移动到 IDE 时,我了解到有错误;显然,“正方形”甚至不继承矩形的字段。这不是让它更没用吗?
等价物是:
java - Java方法中的匿名内部Comparable类?
我的教授在关于范围和生命周期的练习中提供了这段代码:
抛开local
无法访问的事实(这就是练习)和 Comparable 没有参数化(疏忽?)......我从未见过这个结构,甚至不知道它是可能的。
- 这样做是为了避免为整个班级扩展 Comparable 吗?
- 如果是这样,为什么?它更容易/可读/其他吗?
- 可以为任何接口编写这种类型的匿名类吗?
java - Getting inner class type name
I'm trying to get the name of a type (which is an interface) that is instantiated within a class but the available methods I've tried do not return the actual name of the type.
Example:
To get the name I would do:
Taking the java.lang.Runnable interface for example:
Would print out something like class test.Test$2
, I've tried other methods in the Class class but they just print out null or test.Test
. How would I be able to get class java.lang.Runnable
from it?
Thanks!
java - 在实例化类时声明函数
我遇到了以下 java 代码,但我不确定它的含义。我们可以在实例化一个类之后在'{'中编写代码吗,例如 new TestClass { */ code goes here */ }
但是当我尝试运行代码时,我在输出中看不到“Z 为 10”。有人可以给我一些链接,我可以在其中获得与 java 的此功能相关的更多信息。
java - 字段被声明为私有但我可以直接访问
我有一个Foo
扩展Dialog
(SWT)的类。
我定义了一个数据成员private Bazz bazz
在这个类中,我定义了一个名为的方法GetOkListener()
,它基本上返回一个SelectionListener
对象。
在public void widgetSelected(SelectionEvent arg0)
我访问的方法中是bazz
这样的:Foo.this.bazz
.
我的问题是,
这怎么可能?bazz
定义为private
。
这门课在Foo extends Dialog