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 回答