无法从实例调用Activity类方法

时间:2013-03-26 11:17:02

标签: android-activity instance

我开始学习android开发,但我无法理解,为什么我不能从实例调用Activity类方法,例如:

此代码无效:

public class MainActivity extends Activity {
    public void test(){
        Activity a = new Activity();
        a.onCreate(savedInstanceState);
}

1 个答案:

答案 0 :(得分:0)

简单的解释是,一般情况下a可以是Activity 的类型,也可以是Activity的任何子类类方法不是任何接口的一部分,编译器无法在编译时知道Activity的所有子类实际上都实现了OnCreate,因此它实际上是可调用的。

你可能会争辩说,在这种特殊情况下,编译器可以进行静态分析并计算输出类型,但是如果重构代码以从中获取a的值,它将使代码变为无效函数或作为参数传入。