如何使用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(); 

应该工作正常