【问题标题】:get the type of String object - java获取 String 对象的类型 - java
【发布时间】:2013-10-09 14:51:44
【问题描述】:

我正在尝试使用以下方法查找对象的层次结构 - “字符串”。

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 吗??

【问题讨论】:

    标签: java


    【解决方案1】:

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

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

    输出

    class java.lang.Object
    

    【讨论】:

      【解决方案2】:

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

      那是因为x.getClass() 只能返回一个Class 对象,而您在问那个 类对象它是什么类型(显然:Class)。

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

      【讨论】:

        猜你喜欢
        • 2018-05-20
        • 2017-01-01
        • 2012-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多