1

A.java:

public class A {
    public static StartActivity startActivity;
}

B.java:

public class StartActivity extends Activity  
    public void onCreate(Bundle savedInstanceState) {
        A.activity = this;
    }
}

a.activity = this;上記の 2 つの Java ファイルから、「 ?」の意味をお聞きしたいと思い ます。それは、アクティビティの新しいインスタンスを作成することを意味しますか?

4

1 に答える 1

2

それは、アクティビティの新しいインスタンスを作成することを意味しますか?

いいえ。アクティビティはクラスではなくフィールドであり、クラスだけで変数の「インスタンス」を作成することはできません。このコードが行っているのは、既存のオブジェクト (現在の b オブジェクト) を a の static フィールドである activity に割り当てることだけです。

修正を編集
します。タイプと変数の両方に同じ名前のアクティビティがあるため、アクティビティもクラスだと思いますか?あなたの命名は標準的ではなく、問題とあなたの質問を大きく混乱させています。質問を変更して、命名基準を混乱させないようにすることをお勧めします。クラス、インターフェイス、および列挙型を含むすべての型は大文字で始まり、すべての変数は小文字で始まる必要があります。

編集 2
OK、編集した質問の最新のコードを確認した後、A には Activity という静的変数とも呼ばれる静的な StartActivity フィールドがあることがわかります。クラス B のメソッド内で、現在の B オブジェクト自体への参照を A のアクティビティ フィールドonCreate(...)に割り当てます。したがって、アクティビティが以前の StartActivity オブジェクトに割り当てられていた場合、そのメソッドが呼び出されるとthis、その割り当ては現在の B オブジェクトに変更されています。onCreate(...)

于 2012-11-06T02:31:45.093 に答える