国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

caozhijian / 1683人閱讀

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

獲取類名的方法

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

getName()

返回的是虛擬機里面的class的類名表現形式。

getCanonicalName()

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

getSimpleName()

返回的是類的簡稱。

都有什么區別?

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

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();

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

        // 數組類
        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 {

    }

}

程序輸出以下結果。

方法名              類名
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;值得說明一下。

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

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

結論

1、從以上結果可以看出 getName() 和 getCanonicalName() 在獲取普通類名的時候沒有區別,在獲取內部類和數組類有區別的。

2、getSimpleName() 在獲取普通類和內部類名的時候沒區別,在獲取數組類的時候有區別。

推薦:Spring Boot & Cloud 最強技術教程

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71264.html

相關文章

  • Java反射:Web學習靈魂

    摘要:反射學習的靈魂我們從最初的,到面向對象部分,我們可以將代碼在計算機中經歷的階段分為三部分源代碼階段類對象階段運行時階段而我們知道,中一個類在源代碼階段,是存儲在硬盤中的,而編譯后,就已經被加載到內存中區,那么有沒有一種方法可以在這種情況下 反射:Web學習的靈魂 我們從最初的 javac -HelloWorld.java,到面向對象部分,我們可以將Java代碼在計算機中經歷的階段分為三...

    Vultr 評論0 收藏0
  • Java016-反射技術

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

    Acceml 評論0 收藏0
  • Java反射

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

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

    摘要:實際上方法引用是表達式的一種語法糖。小結本篇全面介紹了方法引用的四種使用方式,且每種方式都有對應一個示例來幫助大家理解。 上一篇我們詳細介紹了Optional類用來避免空指針問題,本篇我們全面了解一下Java8中的方法引用特性。方法引用是lambda表達式的一種特殊形式,如果正好有某個方法滿足一個lambda表達式的形式,那就可以將這個lambda表達式用方法引用的方式表示,但是如果這...

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

    摘要:是完全面向對象的語言,對象具有狀態行為和標識。類一一是具有共同特征和行為的一類事物的統稱。受保護的,對同一包內的類和所有子類可見。一種通用的內存池,用于存放所有對象。類級變量又稱全局級變量或靜態變量,需要使用關鍵字修飾。 java語言的基本特點 java語言是面向對象的高級程序設計語言,它是編譯型的語言,Java語言不使用指針,并提供了自動的垃圾回收機制,使得程序員不必為內存管理而擔...

    chengtao1633 評論0 收藏0

發表評論

0條評論

caozhijian

|高級講師

TA的文章

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