【问题标题】: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 的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 2012-05-16
      • 2018-11-04
      相关资源
      最近更新 更多