我开始学习android开发,但我无法理解,为什么我不能从实例调用Activity类方法,例如:
此代码无效:
public class MainActivity extends Activity {
public void test(){
Activity a = new Activity();
a.onCreate(savedInstanceState);
}
答案 0 :(得分:0)
简单的解释是,一般情况下a
可以是Activity
的类型,也可以是Activity
和的任何子类类方法不是任何接口的一部分,编译器无法在编译时知道Activity的所有子类实际上都实现了OnCreate,因此它实际上是可调用的。
你可能会争辩说,在这种特殊情况下,编译器可以进行静态分析并计算输出类型,但是如果重构代码以从中获取a
的值,它将使代码变为无效函数或作为参数传入。