Class类有几个getName的方法,分别如下:
1、Class.getSimpleName():类的简单名称,只包含类名,不包含包名,对于数组,是在简单名称后加“[]”;
2、Class.getCanonicalName():获取类的全路径类名。这个名称与你写代码时使用的名称是一致的。也就是说,你需要定义一个变量时,变量类型如果写的是全称的话,就是用的这个名字。对于内部类的getCanonicalName,是在父类的getName基础上,以“.”连接内部类的简单名称
3、Class.getName():获取类的全路径类名。这个类名是计算机内部使用的,所以有时候会有一些奇怪的符号如"[L"表示对象数组,另外,对于内部类的getName,是在父类的getName基础上,以“$”连接内部类的简单名称
4、Class.getTypeName():将getName中表示数组的方式由奇怪的"[L"方式,换成了更直观的“[]”形式,但内部类父父类名称,仍以“$”连接。
例如有一个类:test.MyClass,它有一个内部类:Inner
则各方法调用结果如下表: