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

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

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

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

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

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

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

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

Element Type Encoding
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[][][][][][][]

Class的getName、getSimpleName与getCanonicalName的区别相关推荐

  1. 《Java编程思想》第四版读书笔记 第十四章 类型信息

    2019独角兽企业重金招聘Python工程师标准>>> 14.2 RTTI运行时类型识别. Class对象包含了与类有关的信息,Java使用Class对象来执行其RTTI.每个类都有 ...

  2. 细说反射,Java 和 Android 开发者必须跨越的坎

    写下这个题目的时候,我压力比较大,怕的是费力不讨好.因为反射这一块,对于大多数人员而言太熟悉了,稍微不注意就容易把方向写偏,把知识点写漏.但是,我已经写了注解和动态代理这两个知识点的博客,阅读量还可以 ...

  3. Java筑基——反射(1):基本类周边信息获取

    相关文章: Java筑基--反射(1):基本类周边信息获取: Java筑基--反射(2):泛型周边信息获取: Java筑基--反射(3):类内部信息获取 目录 1. 前言 2. 正文 2.1 类的生命 ...

  4. 【方向盘】JavaSE/EE基础面试题、基础知识记录---大杂烩

    非常地难学,但是却不可思议地好用.你还要学吗? 本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpa ...

  5. 多态Class对象注册工厂反射动态代理

    运行时类型信息 类型信息(多态&Class对象&注册工厂&反射&动态代理) 一.为什么需要RTTI 二.Class对象 2.1 类字面常量 2.2 泛化的Class引用 ...

  6. 【笔记】《Java编程思想(第四版)》第14章-类型信息

    第14章 类型信息 RTTI(Run-Time Type Identification)运行阶段类型识别 运行时类型信息使得你可以在程序运行时发现和适用类型信息. 一种是"传统的" ...

  7. Java-反射机制详解

    1  定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法,这种动态获取.调用对象方法的功能称为java语言的反射机制 ...

  8. java rtti_举例讲解Java的RTTI运行时类型识别机制

    1.RTTI:运行时类型信息可以让你在程序运行时发现和使用类型信息. 在Java中运行时识别对象和类的信息有两种方式:传统的RTTI,以及反射.下面就来说下RTTI. RTTI:在运行时,识别一个对象 ...

  9. 反射---java王国的武器大师

    [序] 反射是java高级开发中的核心部分,它是一把双刃剑,用得好勇猛无敌,用不好自损一百.本着对知识实例化的学习态度,本文将反射比作武器大师,他能通过武器本身鉴定武器的类别.属性拥有的技能等,下面开 ...

最新文章

  1. 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
  2. 23种设计模式C++源码与UML实现--策略模式
  3. 求序列第K大算法总结
  4. VB讲课笔记02:VB程序开发环境
  5. Spring-AnnotatedBeanDefinitionReader
  6. SpringMVC基础配置
  7. python基础判断题汇总_python基础 判断题
  8. eXtremeComponents文档
  9. ALSA学习(2)——pcm设备逻辑
  10. python换零钱有多少种方案_python练习题4.15换硬币(修正)
  11. 门面担当——外观模式
  12. web前端知识总结二(css(其他)+移动web网页开发)
  13. leetcode题解(含解题思路)(持续更新中)
  14. AirSim学习和踩坑记录(不定时更新)
  15. 医院PACS系统源码,PACS源码,带3D重建PACS系统源码
  16. (文末福利)如果代码莫名其妙跑起来了,就不要去动它了……吗?
  17. 整理10类Java毕设练手项目,献给帅帅的计算计专业毕业人
  18. python 汇总excel表_【Python】Word表格汇总Excel
  19. 解决 el-checkbox-group 值为对象的时候 复选框回显问题
  20. 3d图像重构matlab,matlab图像的三维重建

热门文章

  1. [Java基础]生产者和消费者模式概述与案例分析
  2. 平衡二叉树(AVL树)-详解平衡调整
  3. 洛谷 P1294 高手去散步-邻接矩阵+dfs-求无向图的一条最长路径
  4. 获取壁纸设置背景android,【Android学习】获取Bing 15天前到明天的壁纸,并设置为背景...
  5. java世博会,反应原生失去的世博会
  6. 电脑打字手指正确姿势_写字坐姿不正确的难题,已被家长攻克,果然高手在民间...
  7. Dubbo——增强SPI的实现
  8. Trie:hdu 4825、1251、1247、Poj 3764
  9. P2305 [NOI2014]购票
  10. Wizard of Orz CodeForces - 1467A