Android でこの構造に何か問題がありますか?
class A extends Activity {
private Object myObject = new Object();
@Override
protected void onCreate(Bundle savedInstanceState) {
//myObject = new Object();
}
}
myObjectがnullであるため、後である時点で(まだ再現できない場合もあります)例外が発生するためです。onCreateで初期化する必要があるためかどうかはわかりません。
編集:追加の詳細:
myObject の実際のクラスは
List<Object>
(Object はドメイン固有の型です)アクティビティの後のある時点で、myObject を「パラメータ パサー」クラスの静的フィールドとして保存し、他のアクティビティを開始します (Parcelable の実装を避けているためです。これが良いか悪いかのプラクティスについては、ここでは説明しません。それが私のエラーの原因でない限り)。他のアクティビティでは、myObject をピックアップします。それは(時々)nullです。
編集 2 : このオブジェクトへの参照をパラメーター パサー クラス (スタンドアロンの専用クラス) の静的フィールドとして格納している場合、このオブジェクトが null になる理由がわかりません。それがガベージ コレクションのしくみです。オブジェクトが参照されなくなったときに削除するだけです。したがって、静的参照があるため、このオブジェクトを削除しないでください。この考えによれば、それらが正しければ、問題は別の場所にあるはずです。