美文网首页
Class类getName获取类名方法详细说明

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

作者: 木木与呆呆 | 来源:发表于2023-08-23 17:26 被阅读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中有很多类,
    不同的类之间会存在相同的函数或者方法,
    所以有时候就需要限定类名来调包。
    而如果不存在相同的函数或者方法 ,
    就可以使用非限定类名。

    相关文章

      网友评论

          本文标题:Class类getName获取类名方法详细说明

          本文链接:https://www.haomeiwen.com/subject/bjwpmdtx.html