什么是'MyActivity.this'的数据类型 - Android

时间:2013-01-12 11:11:06

标签: android android-activity

我的问题是JAVA中没有指针...... 但是当我们开始另一项活动时,我们会这样做:

Intent in = new Intent(MyActivity.this, NewActivity.class);
startAcitivity(in);

所以我的问题是MyActivity.this ??

的数据类型是什么

2 个答案:

答案 0 :(得分:1)

撰写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 - 上下文的类。

答案 1 :(得分:1)

在java指针中没有明确允许, 但是,在Java中通过引用(对象)传递是隐含地基于指针概念的东西。

在您的情况下,您将父类的上下文传递给子类, 这实际上是通过参考概念传递的。

希望这有帮助。