MyActivity.this
当您的代码在内部类中运行时,将引用“外部” MyActivity 类的实例。 - 可以?如果是这样,你为什么需要这个host
变量?
更新:我只是突然想到,您可能会错过这样一个事实,即您可以MyActivity.this
从内部类中访问的所有内容,您都可以host
在您的特定设置中访问。
更新:您似乎对this
. 最初,它代表这个对象,即你的代码运行的类。
使用附加符号Class.this
,Java 使您能够访问代码的外部类的实例,但只能从内部类访问。
在以下示例中,Class.this
有效:
class A {
int a;
class B {
void process_a_in_A() {
A.this.a++;
}
}
// however, this does NOT work b/c
// static inner classes do not have references t oouter classes
static class C {
void process_a_in_A() {
// error -- class A.C is detached from its outer class A
A.this.a++;
}
}
}
此外,在以下示例中,Class.this
不起作用。原因很简单,系统无法知道是否存在类 A 的实例以及您想要引用的可能的许多类 A 实例中的哪一个。
class A {
int a;
}
class B {
void process_a_in_A() {
// A here is a class name, not an object reference;
// so A.this is meaningless in this context
A.this.a++;
}
}
再次请注意,您提出的问题没有提供具体回答的必要信息,因此只能笼统地回答,看起来您对内部类和Class.this
符号有错误的理解。