zoukankan      html  css  js  c++  java
  • Class的getName、getSimpleName与getCanonicalName的区别

    一、getName  除了数组外,其他的类都是输出类全名

    String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 

    1、此类对象表示的是非数组类型的引用类型,

       返回该类的二进制名称,Java Language Specification, Second Edition 对此作了详细说明。

    2、此类对象表示一个基本类型或 void

       返回的名字是一个与该基本类型或 void 所对应的 Java 语言关键字相同的 String。

    3、此类对象表示一个数组类

      名字的内部形式为:表示该数组嵌套深度的一个或多个 '[' 字符加元素类型名。元素类型名的编码如下:

    Element TypeEncoding
    boolean Z
    byte B
    char C
    class or interface Lclassname;
    double D
    float F
    int I
    long J
    short S

    例如:

    System.out.println(String.class.getName());
    System.out.println(DataBase.class.getName());   
    System.out.println((new DataBase[3][1]).getClass().getName()); 
    System.out.println((new int[3][4][5][6][7][8][9]).getClass().getName());  

    java.lang.String
    cn.database.DataBase
    [[Lcn.database.DataBase;
    [[[[[[[I

    二、getSimpleName  输出类的简单名(不包含包名)

    返回源代码中给出的底层类的简称。如果底层类是匿名的则返回一个空字符串

    数组的简称即附带 "[]" 的组件类型的简称。特别地,组件类型为匿名的数组的简称是 "[]"。 

    System.out.println(String.class.getSimpleName());
    System.out.println(DataBase.class.getSimpleName());   
    System.out.println((new DataBase[3][1]).getClass().getSimpleName()); 
    System.out.println((new int[3][4][5][6][7][8][9]).getClass().getSimpleName());

    String
    DataBase
    DataBase[][]
    int[][][][][][][]

    三、getCanonicalName 输出类全名

    返回 Java Language Specification 中所定义的底层类的规范化名称。如果底层类没有规范化名称(即如果底层类是一个组件类型没有规范化名称的本地类、匿名类或数组),则返回 null

    System.out.println(String.class.getCanonicalName());
    System.out.println(DataBase.class.getCanonicalName());
    System.out.println((new DataBase[3][1]).getClass().getCanonicalName()); 
    System.out.println((new int[3][4][5][6][7][8][9]).getClass().getCanonicalName());

    java.lang.String
    cn.database.DataBase
    cn.database.DataBase[][]
    int[][][][][][][]

  • 相关阅读:
    基础实验7-2.2 插入排序还是堆排序 (25分)
    进阶实验6-3.1 红色警报 (25分)--并查集
    基础实验3-2.2 单链表分段逆转 (25分)--单链表
    基础实验6-2.2 汉密尔顿回路 (25分)--邻接矩阵
    案例6-1.3 哥尼斯堡的“七桥问题” (25分)--dfs图连通+度判断
    基础实验8-1.1 单身狗 (25分)
    基础实验7-2.3 德才论 (25分)--排序
    基础实验7-2.4 PAT排名汇总 (25分)--结构体排序(快排)
    进阶实验4-3.4 笛卡尔树 (25分)--二叉排序树+堆排序
    基础实验4-2.7 修理牧场 (25分)-堆+哈夫曼树
  • 原文地址:https://www.cnblogs.com/maokun/p/6771365.html
Copyright © 2011-2022 走看看