私たちはSubclass.me()を通じてアクセスしたい 'Handler'のサブクラスを自己登録しています。 Javaでこれに似たものがありますか?静的Javaメソッドのクラスへのアクセス
public class Handler{
static Vector<Handler> register=new Vector<Handler>();
public static Handler me() {
return register.get(this.class);// TODO
}
}
public class SubClass extends Handler{
SubClass(){register.add(this);}// OK
}
質問を明確にする:静的なJavaメソッドを呼び出すときにCLASSを取得できますか? 'this'は利用できないので、this.classは明らかに機能しません。
これらは上書きする必要はありませんが、2番目の部分は質問に答えます。 MyClass.myStaticMethod()が唯一の正しい方法である場合、Subclass.myStaticMethod()を呼び出すとどうしてeclipseで警告が出されないのですか? – Anno2001
@ Anno2001 Eclipseでは、エラー/警告を受け取るか、静的メンバーへの非静的アクセスを無視するかを選択できます。 Eclipseの環境設定 - Java - >コンパイラ - >エラー/警告 - >コードスタイル - >静的メンバーへの非静的アクセスを参照してください。 – ddelver