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[][][][][][][]

  • 相关阅读:
    hive与hbase整合
    待重写
    hive DML
    【知识强化】第六章 总线 6.1 总线概述
    【知识强化】第五章 中央处理器 5.1 CPU的功能和基本结构
    【知识强化】第四章 指令系统 4.3 CISC和RISC的基本概念
    【知识强化】第四章 指令系统 4.2 指令寻址方式
    【知识强化】第四章 指令系统 4.1 指令格式
    【知识强化】第三章 存储系统 3.6 高速缓冲存储器
    【知识强化】第三章 存储系统 3.5 双口RAM和多模块存储器
  • 原文地址:https://www.cnblogs.com/maokun/p/6771365.html
Copyright © 2011-2022 走看看