如何使用getClass()获取父类名称.getSuperclass()?

Siv*_*r M 6 java

我正在尝试使用父类名称

public class ClassA  extends Draw{

    public ClassA(){
        super();
    }
    .....

} 
 public class ClassC {

    public getParent(Object a_class)
    {

        String superClass= a_class.getClass().getSuperclass().toString();

    }

}
Run Code Online (Sandbox Code Playgroud)

我有以下错误

Exception in thread "main" java.lang.StackOverflowError
    at Draw.<init>(Draw.java:2)
    at ClassA.<init>(ClassA.java:2)
    at ClassA.<init>(ClassA.java:5)
    at ClassA.<init>(ClassA.java:5)
    at ClassA.<init>(ClassA.java:5)
    at ClassA.<init>(ClassA.java:5)
Run Code Online (Sandbox Code Playgroud)

如何获取父类名称我需要父类名称如何获取

Tob*_*ias 8

用途Class.getName():

String superClass = a_class.getClass().getSuperclass().getName();
Run Code Online (Sandbox Code Playgroud)

要获取名称而不是包名称,请使用Class.getSimpleName():

String superClass = a_class.getClass().getSuperclass().getSimpleName();
Run Code Online (Sandbox Code Playgroud)

但是,a_class它已经是一个Class实例,因此您可能希望使用它a_class.getSuperclass().


Ell*_*sch 4

我想你只是想要

super.getClass().getName();
Run Code Online (Sandbox Code Playgroud)

或者可能

super.getClass().getCanonicalName();
Run Code Online (Sandbox Code Playgroud)

或者,你可以使用

this.getClass().getSuperclass().getName(); // <-- or getCanonicalName()
Run Code Online (Sandbox Code Playgroud)