我正在尝试使用父类名称
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)
如何获取父类名称我需要父类名称如何获取
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().
我想你只是想要
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)