-1

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

此代码不起作用:

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

1 回答 1

0

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

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

于 2013-03-26T11:29:22.200 回答