获取String对象的类型 - java

时间:2013-10-09 14:51:44

标签: java

我正在尝试使用以下方法找到Object的层次结构 - “String”。

public class test{

    public static void main(String[] args){
        String x = "Test";
        System.out.println(x.getClass().getClass());
    }
}       

第一个x.getclass()返回

Output:

    class java.lang.String

然后-System.out.println(x.getClass()。getClass());

Output:
       class java.lang.Class

之后的任何内容都会产生相同的结果

的System.out.println(x.getClass()的getClass()的getClass()的getClass()...);

不应该在某些时候导致 - java.lang.Object ??

2 个答案:

答案 0 :(得分:4)

结果是正确的,因为您正在getClass()实例上调用Class。要获取父类,您应该从代表子类类型的getSuperclass()实例调用Class

String x = "Test";
System.out.println(x.getClass().getSuperclass());

输出

class java.lang.Object

答案 1 :(得分:1)

x.getClass().getClass()始终任何非空值x 返回代表java.lang.Class的类对象。

那是因为x.getClass()只能返回一个Class对象而你要求那个类对象是什么类型(显然:Class)。< / p>

想要尝试的内容不是x.getClass().getClass(),而是x.getClass().getSuperClass()。重复最后一部分最终导致java.lang.Object,如您所料(如果再重复一次,则转到null)。