从超类获取子类的类引用

时间:2012-05-07 19:11:10

标签: java

如何从Superclass方法获取对Subclass类的引用?

如,

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;
}

3 个答案:

答案 0 :(得分:3)

听起来你只是想要:

Class<?> clazz = getClass();

或更明确地说:

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

请注意,它不是包含调用方法的代码的类 - 它将是调用该方法的对象的类。如果你想要调用者的类,那就完全不同了。

答案 1 :(得分:0)

如果您致电getClass(),您将获得该实例的课程。

答案 2 :(得分:0)

MySub1 sub1 = new MySub1();
sub1.getClass(); // returns the MySub1.
sub1.getClass().getSuperclass(); // returns MySuper 

我希望这是你需要的。