【问题标题】:What is the data type of 'MyActivity.this' - Android'MyActivity.this' 的数据类型是什么 - Android
【发布时间】:2012-12-26 21:31:39
【问题描述】:
我的问题是 JAVA 中没有指针...
但是当我们必须开始另一个活动时,我们会这样做:
Intent in = new Intent(MyActivity.this, NewActivity.class);
startAcitivity(in);
所以我的问题是MyActivity.this 的数据类型是什么??
【问题讨论】:
标签:
android
android-activity
【解决方案1】:
在java中指针是不允许的,
但是在Java中通过引用(对象)传递是隐式基于指针概念的。
在您的情况下,您将父类的上下文传递给子类,
这实际上是通过引用概念传递的。
希望这会有所帮助。
【解决方案2】:
写MyActivity.this和写this是一样的,如果你在一个非嵌套类中,或到顶级类。
看这个例子:
public class TopLevel{
public static void main(String[] args){
new TopLevel().printClass();
}
public TopLevel(){
new LowerLevel().printClass();
}
public void printClass(){
System.out.println("Outer Class: ");
// Will print something like "TopLevel.class"
System.out.println(this.getClass());
}
public class LowerLevel{
// This is a Nested-Class.
public void printClass(){
System.out.println("Nested Class: ");
// Will print "TopLevel$LowerLevel.class"
System.out.println(this.getClass());
// Will print "TopLevel.class" again
System.out.println(TopLevel.this.getClass());
}
}
}
在嵌套类中使用this 的某些实例与在顶级类中使用它时引用的实例不同。因此,要在嵌套类中获取外部类的“上下文”,您还需要指定您想要 this-context 的类。