java中g(shù)etCanonicalName()和getName()的區(qū)別

從源碼可以看到getName()就是存在于虛擬機(jī)中class的名稱

    public String getName() {
        String name = this.name;
        if (name == null)
            this.name = name = getNameNative();
        return name;
    }

從源碼中看到getCanonicalName()就是取一個(gè)更見(jiàn)名思意的名稱

   public String getCanonicalName() {
       if (isArray()) {
           String canonicalName = getComponentType().getCanonicalName();
           if (canonicalName != null)
               return canonicalName + "[]";
           else
               return null;
       }
       if (isLocalOrAnonymousClass())
           return null;
       Class<?> enclosingClass = getEnclosingClass();
       if (enclosingClass == null) { // top level class
           return getName();
       } else {
           String enclosingName = enclosingClass.getCanonicalName();
           if (enclosingName == null)
               return null;
           return enclosingName + "." + getSimpleName();
       }
   }
image.png

大部分兩者是沒(méi)有區(qū)別的,但是像byte[]這種類型就有區(qū)別了
getName():打印顯示為 [B
getCanonicalName():打印顯示為 byte[]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ## 引言 ### java中創(chuàng)建對(duì)象有幾種方式? #### 1.使用new關(guān)鍵字 #### 2.使用clone方...
    芋頭888閱讀 652評(píng)論 1 0
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 5,210評(píng)論 1 114
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,697評(píng)論 18 399
  • 讓我們一起認(rèn)真對(duì)待之前可能沒(méi)有多在意的基礎(chǔ)知識(shí)之一 Java 反射。 注意,這篇文章因?yàn)閮?nèi)容太多,所以篇幅非常長(zhǎng)...
    as_pixar閱讀 207評(píng)論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂愁,有人驚喜有人失落,有的覺(jué)得收獲滿滿有...
    陌忘宇閱讀 8,834評(píng)論 28 54

友情鏈接更多精彩內(nèi)容