亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java中獲取類名的3種方法!

caozhijian / 1735人閱讀

摘要:獲取類名的方法中獲取類名的方式主要有以下三種。返回的是更容易理解的類名表示。返回的是類的簡稱。之后代表類描述符,最后表示類名結(jié)束。在獲取普通類和內(nèi)部類名的時候沒區(qū)別,在獲取數(shù)組類的時候有區(qū)別。

獲取類名的方法

Java 中獲取類名的方式主要有以下三種。

getName()

返回的是虛擬機(jī)里面的class的類名表現(xiàn)形式。

getCanonicalName()

返回的是更容易理解的類名表示。

getSimpleName()

返回的是類的簡稱。

都有什么區(qū)別?

通過一個實例來看下它們主要的區(qū)別。

public class TestClass {

    public static void main(String[] args) {
        // 外部普通類
        System.out.println("方法名             類名");
        System.out.println("getName            " + TestClass.class.getName());
        System.out.println("getCanonicalName   " + TestClass.class.getCanonicalName());
        System.out.println("getSimpleName      " + TestClass.class.getSimpleName());
        System.out.println();

        // 內(nèi)部類
        System.out.println("getName            " + TestInnerClass.class.getName());
        System.out.println("getCanonicalName   " + TestInnerClass.class.getCanonicalName());
        System.out.println("getSimpleName      " + TestInnerClass.class.getSimpleName());
        System.out.println();

        // 數(shù)組類
        TestInnerClass[] testInnerClasses = new TestInnerClass[]{
                new TestInnerClass(),
                new TestInnerClass(),
                new TestInnerClass()
        };
        System.out.println("getName            " + testInnerClasses.getClass().getName());
        System.out.println("getCanonicalName   " + testInnerClasses.getClass().getCanonicalName());
        System.out.println("getSimpleName      " + testInnerClasses.getClass().getSimpleName());
        System.out.println();
    }

    static class TestInnerClass {

    }

}

程序輸出以下結(jié)果。

方法名              類名
getName            com.test.TestClass
getCanonicalName   com.test.TestClass
getSimpleName      TestClass

getName            com.test.TestClass$TestInnerClass
getCanonicalName   com.test.TestClass.TestInnerClass
getSimpleName      TestInnerClass

getName            [Lcom.test.TestClass$TestInnerClass;
getCanonicalName   com.test.TestClass.TestInnerClass[]
getSimpleName      TestInnerClass[]

[Lcom.test.TestClass$TestInnerClass;值得說明一下。

這是一種對函數(shù)返回值和參數(shù)的編碼,叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。

[ 表示數(shù)組,一個代表一維數(shù)組,比如 [[ 代表二維數(shù)組。之后 L 代表類描述符,最后;表示類名結(jié)束。

結(jié)論

1、從以上結(jié)果可以看出 getName() 和 getCanonicalName() 在獲取普通類名的時候沒有區(qū)別,在獲取內(nèi)部類和數(shù)組類有區(qū)別的。

2、getSimpleName() 在獲取普通類和內(nèi)部類名的時候沒區(qū)別,在獲取數(shù)組類的時候有區(qū)別。

推薦:Spring Boot & Cloud 最強(qiáng)技術(shù)教程

掃描關(guān)注我們的微信公眾號,干貨每天更新。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71264.html

相關(guān)文章

  • Java反射:Web學(xué)習(xí)靈魂

    摘要:反射學(xué)習(xí)的靈魂我們從最初的,到面向?qū)ο蟛糠?,我們可以將代碼在計算機(jī)中經(jīng)歷的階段分為三部分源代碼階段類對象階段運行時階段而我們知道,中一個類在源代碼階段,是存儲在硬盤中的,而編譯后,就已經(jīng)被加載到內(nèi)存中區(qū),那么有沒有一種方法可以在這種情況下 反射:Web學(xué)習(xí)的靈魂 我們從最初的 javac -HelloWorld.java,到面向?qū)ο蟛糠郑覀兛梢詫ava代碼在計算機(jī)中經(jīng)歷的階段分為三...

    Vultr 評論0 收藏0
  • Java016-反射技術(shù)

    摘要:簡單說反射技術(shù)可以對一個類進(jìn)行解剖。反射的基本步驟獲得對象,就是獲取到指定的名稱的字節(jié)碼文件對象。所以一般情況下,被反射的類,內(nèi)部通常都會提供一個公有的空參數(shù)的構(gòu)造函數(shù)。 定義 其實就是動態(tài)加載一個指定的類,并獲取該類中的所有的內(nèi)容。 而且將字節(jié)碼文件封裝成對象,并將字節(jié)碼文件中的內(nèi)容都封裝成對象,這樣便于操作這些成員。 簡單說:反射技術(shù)可以對一個類進(jìn)行解剖。 反射的好處: 大大的增強(qiáng)...

    Acceml 評論0 收藏0
  • Java反射

    摘要:中的反射反射能夠分析類所擁有的能力的程序稱為反射。獲取類的名稱獲取類的修飾符獲取類所在的包獲取父類的屬性獲取類的構(gòu)造器等等獲得的構(gòu)造器的使用獲取構(gòu)造器有兩種方法。 Java中的反射 反射:能夠分析類所擁有的能力的程序稱為反射。 反射的作用 當(dāng)我們在使用一個已有的類的時候,在主代碼的main()方法中使用別的已有的類的時候,如果被使用的類發(fā)生了改變,那么導(dǎo)致我們的main()方法中...

    張紅新 評論0 收藏0
  • Java8-8-方法引用詳解

    摘要:實際上方法引用是表達(dá)式的一種語法糖。小結(jié)本篇全面介紹了方法引用的四種使用方式,且每種方式都有對應(yīng)一個示例來幫助大家理解。 上一篇我們詳細(xì)介紹了Optional類用來避免空指針問題,本篇我們?nèi)媪私庖幌翵ava8中的方法引用特性。方法引用是lambda表達(dá)式的一種特殊形式,如果正好有某個方法滿足一個lambda表達(dá)式的形式,那就可以將這個lambda表達(dá)式用方法引用的方式表示,但是如果這...

    劉東 評論0 收藏0
  • Java學(xué)習(xí)筆記(一)

    摘要:是完全面向?qū)ο蟮恼Z言,對象具有狀態(tài)行為和標(biāo)識。類一一是具有共同特征和行為的一類事物的統(tǒng)稱。受保護(hù)的,對同一包內(nèi)的類和所有子類可見。一種通用的內(nèi)存池,用于存放所有對象。類級變量又稱全局級變量或靜態(tài)變量,需要使用關(guān)鍵字修飾。 java語言的基本特點 java語言是面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,它是編譯型的語言,Java語言不使用指針,并提供了自動的垃圾回收機(jī)制,使得程序員不必為內(nèi)存管理而擔(dān)...

    chengtao1633 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<