0

好吧,我的问题是 JAVA 中没有指针……但是当我们必须开始另一个活动时,我们会这样做:

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

所以我的问题是什么是数据类型MyActivity.this

4

2 回答 2

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获取 -context 的类。

于 2013-01-12T11:23:24.323 回答
1

在 java 中指针是不允许的,但是在 Java 中通过引用(对象)传递是隐式基于指针概念的东西。

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

希望这可以帮助。

于 2013-01-12T13:56:45.773 回答