Class类getName获取类名方法详细说明

1.说明

在java.lang.Class类中有一个获取类名的方法:
public String getName()
其返回的是该对象表示的类或接口的名称。

返回由这个Class对象表示的实体的字符串名称,
这个实体可以是:
class, interface, array class, primitive type, void

如果这个类对象表示非数组类型的引用类型,
则返回类的全限定类名,
即Java语言规范指定的名称。

如果这个类对象表示基本类型或void,
则返回的名称是一个简写字符串,
与Java语言关键字中的基本类型或void有对应关系。

如果这个类对象表示一个数组类,
则名称的内部形式由元素类型的名称组成,
前面是一个或多个表示数组嵌套深度的“[”字符。

2.非数组类型映射关系

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

3.数组类型映射关系

Element Type Encoding
array boolean [Z
array byte [B
array char [C
array class or interface [Lclassname;
array double [D
array float [F
array int [I
array long [J
array short [S
类名或接口名classname是上面指定的全限定类名。

4.示例

 String.class.getName()
     returns "java.lang.String"
 byte.class.getName()
     returns "byte"
 (new Object[3]).getClass().getName()
     returns "[Ljava.lang.Object;"
 (new int[3][4][5][6][7][8][9]).getClass().getName()
     returns "[[[[[[[I"

5.扩充知识点

5.1.全限定类名

全限定类名就是类名全称,带包路径的用点隔开,例如: java.lang.String。

5.2.非限定类名

非限定类名也叫短名,就是我们平时说的类名,不带包的,例如:String。

5.3.全限定类名和非限定类名的区别

非限定类名是相对于限定类名来说的,
在Java中有很多类,
不同的类之间会存在相同的函数或者方法,
所以有时候就需要限定类名来调包。
而如果不存在相同的函数或者方法 ,
就可以使用非限定类名。

你可能感兴趣的:(java,class,[I,[L)