如何使用getClass()获取父类名.getSuperclass()?
我正在尝试使用父类名称
public class ClassA extends Draw{ public ClassA(){ super(); } ..... } public class ClassC { public getParent(Object a_class) { String superClass= a_class.getClass().getSuperclass().toString(); } }
我有以下错误
Exception in thread "main" java.lang.StackOverflowError at Draw.(Draw.java:2) at ClassA.(ClassA.java:2) at ClassA.(ClassA.java:5) at ClassA.(ClassA.java:5) at ClassA.(ClassA.java:5) at ClassA.(ClassA.java:5)
如何获取父类名称我需要父类名称如何获取
使用Class.getName()
:
String superClass = a_class.getClass().getSuperclass().getName();
要获取名称而不是包名称,请使用Class.getSimpleName()
:
String superClass = a_class.getClass().getSuperclass().getSimpleName();
但是, a_class
已经是一个Class
实例,因此您可能希望使用a_class.getSuperclass()
。
我想你只是想要
super.getClass().getName();
或者可能
super.getClass().getCanonicalName();
或者,你可以使用
this.getClass().getSuperclass().getName(); // <-- or getCanonicalName()
super.getClass().getName(); or yourClass.getClass().getSuperclass().getName();
应该工作正常