gpt4 book ai didi

java - 访问匿名外部类而不存储在变量中?

转载 作者:搜寻专家 更新时间:2023-11-01 03:11:07 26 4
gpt4 key购买 nike

有没有办法访问匿名外部类?普通类可以通过 ClassName.this 访问。这是行不通的,因为匿名类显然没有名称。我也尝试使用扩展类/接口(interface)(如 Runnable.this),但它似乎不会以这种方式工作。

我确定这可能不是最好的编码风格,我只是好奇是否可以不将外部存储在变量中。

例如,注意 outer.this:

public class A
{
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
new Thread(new Runnable() {
@Override
public void run() {
synchronized (outher.this) {
outher.this.notify();
}
}
}).start();
try {
synchronized (this) {
wait();
}
} catch (final InterruptedException ex) {}
}
}).start();
}
}

最佳答案

不,没有办法从任何地方访问匿名类,除了从它们内部(即不是通过 this 引用)。或者通过显式声明的变量。

final Runnable r1 = new Runnable() {...};
Runnable r2 = new Runnable() {
public void run() {
synchronized(r1) {...}
}
};

关于java - 访问匿名外部类而不存储在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com