这是一个更具体的例子:
public class A {
public static class B {
public void f() {
synchronized (B.this) {
// do something
}
}
}
}
B.this指的是什么?
答案 0 :(得分:5)
It's the active instance of
B . If the class weren't static, you'd also have
A.this`可用,引用包含A的实例。
因为该类是静态的,所以永远不必使用B.this
,因为简单地this
永远不会有歧义。
答案 1 :(得分:3)
在这里,B.this
是一种写this
的尴尬方式。
答案 2 :(得分:0)
它锁定了完全相同的东西,就好像你把B作为一个外部类并且做了
public class B {
public void f() {
synchronized (this) {
// do something
}
}
表示B的当前实例。