0

スーパークラスメソッドからサブクラスのクラスへの参照を取得するにはどうすればよいですか?

例えば、

public class MySuper {
  public void myMethod(){
    // here i need a reference to MySub1.class or MySub2.class
    // depending on the class of the instance that invoked this method
  }
}

public class MySub1 extends MySuper {
  public String myString;
}
public class MySub2 extends MySuper {
  public int myInt;
}
4

3 に答える 3

3

あなたが望むように聞こえます:

Class<?> clazz = getClass();

またはより明確に:

Class<?> clazz = this.getClass();

メソッドを呼び出したコードを含むクラスではないことに注意してください。メソッドが呼び出されたオブジェクトのクラスになります。発信者のクラスが必要な場合、それはまったく別の問題です。

于 2012-05-07T19:12:28.520 に答える
0

呼び出すgetClass()と、インスタンスのクラスを取得します。

于 2012-05-07T19:12:55.587 に答える
0
MySub1 sub1 = new MySub1();
sub1.getClass(); // returns the MySub1.
sub1.getClass().getSuperclass(); // returns MySuper 

これがあなたが必要としているものであることを願っています。

于 2012-05-07T19:15:21.757 に答える