我正在尝试使用
获取父类名称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.<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)
如何获取父类名称 我需要父类名称如何获取
答案 0 :(得分:8)
String superClass = a_class.getClass().getSuperclass().getName();
要获取名称而不是包名称,请使用Class.getSimpleName()
:
String superClass = a_class.getClass().getSuperclass().getSimpleName();
但是,a_class
已经是Class
个实例,因此您可能希望改为使用a_class.getSuperclass()
。
答案 1 :(得分:3)
我想你只想要
super.getClass().getName();
或可能
super.getClass().getCanonicalName();
或者,您可以使用
this.getClass().getSuperclass().getName(); // <-- or getCanonicalName()
答案 2 :(得分:0)
super.getClass().getName(); or
yourClass.getClass().getSuperclass().getName();
应该可以正常工作