如何从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;
}
答案 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
我希望这是你需要的。