问题标签 [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.

0 投票
2 回答
814 浏览

java - 可运行的内联类声明 - 能够访问外部非最终变量

在下面的代码中,我想知道为什么内联类中的 run() 能够访问外部类变量 - 信号量(即使它没有声明为 final)。

我希望 Eclipse 标记编译错误 - 因为信号量引用未声明为 final

0 投票
1 回答
1948 浏览

java - Lambda 的行为与匿名内部类不同

在做一些基本的 lambda 练习时,一个明显相同的匿名内部类的输出给了我与 lambda 不同的输出。

情景#1

输出22。这里没有什么新鲜事。


但是当我这样做时:

情景#2

输出23

问题:两个输出不应该相同吗?我错过了什么吗?


为了完整起见: 场景#3

输出33。这里也没有什么新鲜事。

更新:仍然从 1.8.0-b132 获得相同的输出

更新 #2:错误报告: https ://bugs.openjdk.java.net/browse/JDK-8038420

更新#3:该错误已在 javac 中修复,您现在应该能够获得相同的结果。

0 投票
3 回答
100 浏览

java - 需要关于方法调用的解释

在下面的代码中:

我知道FilenameFilter定义和实例化了一个实现接口的匿名类。但是我不明白如何在accept不直接调用的情况下调用该方法。

0 投票
3 回答
73 浏览

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.

0 投票
1 回答
39 浏览

java - 创建扩展其他类的内部匿名类

我知道这有效:

它创建了一个隐式扩展AbstractClass类的对象(显然是abstract)。

但是下面的工作也可以吗?

ConcreteClass 是一个不是abstract.

0 投票
3 回答
5920 浏览

java - 对匿名类与匿名内部类感到困惑

我去寻找学习如何在 Java 中执行 lambda 表达式,但我却遇到了困惑。所以我对匿名类的理解是这样的:

之前看到过匿名内部类这个词,但当时还不知道什么是正规匿名类。我看到的很多线程和视频似乎都将匿名内部类称为“匿名类”。它们是同义词吗?我对匿名内部类的理解是:

所以本质上,不必为 Square 编写一个子类,然后重写 calculatePerimeter() 方法,我可以只创建一个一次性的 square 类,然后重写他们的方法。它是否正确?

因此,匿名内部类与继承有关。我不明白它的用途。也许是因为我以前从未使用过它们,或者因为我没有太多的编程经验。你可以给我例子或解释什么时候有用吗?

更新:当我将匿名内部类的代码移动到 IDE 时,我了解到有错误;显然,“正方形”甚至不继承矩形的字段。这不是让它更没用吗?

等价物是:

0 投票
2 回答
1278 浏览

java - Java方法中的匿名内部Comparable类?

我的教授在关于范围和生命周期的练习中提供了这段代码:

抛开local无法访问的事实(这就是练习)和 Comparable 没有参数化(疏忽?)......我从未见过这个结构,甚至不知道它是可能的。

  1. 这样做是为了避免为整个班级扩展 Comparable 吗?
  2. 如果是这样,为什么?它更容易/可读/其他吗?
  3. 可以为任何接口编写这种类型的匿名类吗?
0 投票
2 回答
113 浏览

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!

0 投票
5 回答
105 浏览

java - 在实例化类时声明函数

我遇到了以下 java 代码,但我不确定它的含义。我们可以在实例化一个类之后在'{'中编写代码吗,例如 new TestClass { */ code goes here */ }

但是当我尝试运行代码时,我在输出中看不到“Z 为 10”。有人可以给我一些链接,我可以在其中获得与 java 的此功能相关的更多信息。

0 投票
4 回答
68 浏览

java - 字段被声明为私有但我可以直接访问

我有一个Foo扩展Dialog(SWT)的类。
我定义了一个数据成员private Bazz bazz

在这个类中,我定义了一个名为的方法GetOkListener(),它基本上返回一个SelectionListener对象。

public void widgetSelected(SelectionEvent arg0)
我访问的方法中是bazz这样的:Foo.this.bazz.

我的问题是,
这怎么可能?bazz定义为private

这门课在Foo extends Dialog