-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 に答える