[解決済み] 派生クラスから強制的にスーパーメソッドを呼び出すには?(Androidのように)
2023-04-23 16:25:12
質問
疑問に思ったのですが、新しい
Activity
クラスを作成し
onCreate()
メソッドをオーバーライドすると、eclipseではいつも自動追加されます。
super.onCreate()
. これはどのようにして起こるのでしょうか?抽象クラスまたは親クラスにこれを強制するJavaキーワードがあるのでしょうか?
スーパークラスを呼び出さないことが違法かどうかは分かりませんが、いくつかのメソッドでは、これを行わないために例外が投げられたことを覚えています。これもjavaに組み込まれているのでしょうか?それを行うために何らかのキーワードを使用することができますか?またはそれはどのように行われるのですか?
どのように解決するには?
以下は
Activity#onCreate()
- はほとんどコメントです (
オリジナル - ~800行目参照
):
/**
* Called when the activity is starting. This is where most initialization
* should go: calling {@link #setContentView(int)} to inflate the
* activity's UI, using {@link #findViewById} to programmatically interact
* with widgets in the UI, calling
* {@link #managedQuery(android.net.Uri , String[], String, String[], String)} to retrieve
* cursors for data being displayed, etc.
*
* <p>You can call {@link #finish} from within this function, in
* which case onDestroy() will be immediately called without any of the rest
* of the activity lifecycle ({@link #onStart}, {@link #onResume},
* {@link #onPause}, etc) executing.
*
* <p><em>Derived classes must call through to the super class's
* implementation of this method. If they do not, an exception will be
* thrown.</em></p>
*
* @param savedInstanceState If the activity is being re-initialized after
* previously being shut down then this Bundle contains the data it most
* recently supplied in {@link #onSaveInstanceState}. <b><i>Note: Otherwise it is null.</i></b>
*
* @see #onStart
* @see #onSaveInstanceState
* @see #onRestoreInstanceState
* @see #onPostCreate
*/
protected void onCreate(Bundle savedInstanceState) {
mVisibleFromClient = !mWindow.getWindowStyle().getBoolean(
com.android.internal.R.styleable.Window_windowNoDisplay, false);
mCalled = true;
}
というわけで、推測するに、ADT Eclipse プラグインは、この呼び出しを
super.onCreate()
への呼び出しを自動追加しているのだと思います。これは完全な推測ですが。
関連
-
java.sql.SQLException: 結果セットの開始前
-
配列定数は初期化子でのみ使用可能です。
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
Junitのユニットテストエラー
-
[解決済み] Androidで遅延後にメソッドを呼び出す方法
-
[解決済み] 抽象クラスをユニットテストする方法:スタブで拡張する?
-
[解決済み] GsonでList<T>オブジェクトをデシリアライズする?
-
[解決済み] JavaでBase64としてエンコードする
-
[解決済み] 匿名)内部クラスを使用することがリークセーフとなるのは、具体的にどのような場合ですか?
-
[解決済み】AndroidでPreferenceActivityからSharedPreferencesを取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Javaでよくある構文エラー
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
代入の左辺は変数でなければならない 解答
-
アクセス制限の解決方法: ---- in Java
-
Zipファイルの圧縮・解凍にantを使用する