这里是一个更具体的例子:Java - 对于A类内定义的类B(静态),B.this是什么意思?
public class A {
public static class B {
public void f() {
synchronized (B.this) {
// do something
}
}
}
}
是什么B.this指什么?
这里是一个更具体的例子:Java - 对于A类内定义的类B(静态),B.this是什么意思?
public class A {
public static class B {
public void f() {
synchronized (B.this) {
// do something
}
}
}
}
是什么B.this指什么?
It's the active instance of
乙. If the class weren't static, you'd also have
A.this`可用,指A.
因为类是静态的含例如,它不应该有必要使用B.this
,简单地this
绝不会含糊。
如果B不是静态的,为什么“this”会含糊不清?难道它不是总是指B的例子吗? – Aneesh 2012-02-07 04:48:30
在这里,B.this
是写this
尴尬的方式。
它可以锁定同样的事情,如果你有B中的外部类,做
public class B {
public void f() {
synchronized (this) {
// do something
}
}
这意味着B的当前实例
同'this'。由于该类是静态的,因此甚至不存在'A.this'。 'B b = new B();':B。这个会指向b。 – 2012-02-06 14:27:06
@JoopEggen A不是静态的,答案是存在的 – 2012-02-06 14:28:14
@AdelBoutros但不在B或B实例中。 – 2012-02-06 14:29:47