Class类getName获取类名方法详细说明
  GvKa0siuaY4Z 2023年11月14日 35 0


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中有很多类,
不同的类之间会存在相同的函数或者方法,
所以有时候就需要限定类名来调包。
而如果不存在相同的函数或者方法 ,
就可以使用非限定类名。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读