如何用class类的getSuperClass()获取父类名?我测试怎么不行啊?
也许,是我的用法不对,请各位前辈指点一下.class A 
{
public static void main(String[] args) 
{
B b=new B();
System.out.println(b.getSuperClass());
}
}
class B extends A
{
}

解决方案 »

  1.   

    是通过Class类本身去获取运行期信息
    参考:
     //打印类继存层次树型结构 
    import java.util.*;
    /**
     * @author Ihavegotyou
     *  打印类继存层次树型结构
     */
    public class InheritRelation {
     static Stack<Class> stack = new Stack<Class>();
     static Class fClass;
     static Class getClassInheritRelation(final Class aClass) {
      if (aClass != null) {
       Class parentClass = aClass.getSuperclass();
       if (parentClass != null)
        stack.push(parentClass);
       return getClassInheritRelation(parentClass);
      } else
       return null;
     }
        
     public InheritRelation(final Class aClass) {
      super();
      fClass = aClass;
      getClassInheritRelation(aClass);
      printInheritRelation();
     }
     public InheritRelation() {
      new InheritRelation(this.getClass());
     }
     static void printInheritRelation() {
      int i = 0;
      while (!stack.isEmpty()) {
       for (int j = 0; j <= i; j++)
        System.out.print('.');
       System.out.println(stack.peek().toString().substring(6));
       stack.pop();
       i++;
      }
      for (int j = 0; j <= i; j++)
       System.out.print('.');
      System.out.println(fClass.toString().substring(6));
      System.out.println();
     }
     public static void main(String[] args) {
      InheritRelation stack = new InheritRelation(new Stack().getClass());
      InheritRelation hashmap=new InheritRelation(new HashMap().getClass());
      try {
       Class.forName("InheritRelation").newInstance();
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    }
      

  2.   

    不好意思,我太笨了,看不懂那么复杂的,请您把我上面的这个程序修改一下,用
    class 类的getSuperClass()方法输出B类的父类,谢谢.
      

  3.   

    class A 
    {
    public static void main(String[] args) 
    {
    //B b=new B();
    System.out.println(B.class.getSuperclass());
    }
    }
    class B extends A
    {
    }
      

  4.   

    System.out.println(b.getSuperClass());------>System.out.println(b.getClass().getSuperclass());
    getSuperclass()要用类来调用,不能单纯使用对象,注意大小写.