getCanonicalName滤港、getName、getSimpleName的區(qū)別

例:

public class Log4jTest {
    class Innr{

    }
    private static Logger log = LogManager.getLogger(Log4jTest.class);

    @Test
    public void log4jTest(){
        log.info("-----------內(nèi)部類----------------");
        Class innr = Innr.class;
        log.info(innr.getCanonicalName());
        log.info(innr.getName());
        log.info(innr.getSimpleName());

        log.info("-----------匿名類----------------");

        Class anonymousClass = new Object(){}.getClass();
        log.info(anonymousClass.getCanonicalName());
        log.info(anonymousClass.getName());
        log.info(anonymousClass.getSimpleName());
        
        log.info("-----------數(shù)組類----------------");
        Class arrayClass = new Object[1].getClass();
        log.info(arrayClass.getCanonicalName());
        log.info(arrayClass.getName());
        log.info(arrayClass.getSimpleName());
    }
}


結(jié)果:

17:40:36.940 [main] INFO  zengqiang.Log4jTest - -----------內(nèi)部類----------------
17:40:36.944 [main] INFO  zengqiang.Log4jTest - zengqiang.Log4jTest.Innr
17:40:36.944 [main] INFO  zengqiang.Log4jTest - zengqiang.Log4jTest$Innr
17:40:36.944 [main] INFO  zengqiang.Log4jTest - Innr
17:40:36.944 [main] INFO  zengqiang.Log4jTest - -----------匿名類----------------
17:40:36.945 [main] INFO  zengqiang.Log4jTest - null
17:40:36.945 [main] INFO  zengqiang.Log4jTest - zengqiang.Log4jTest$1
17:40:36.946 [main] INFO  zengqiang.Log4jTest - 
17:40:36.946 [main] INFO  zengqiang.Log4jTest - -----------數(shù)組類----------------
17:40:36.946 [main] INFO  zengqiang.Log4jTest - java.lang.Object[]
17:40:36.946 [main] INFO  zengqiang.Log4jTest - [Ljava.lang.Object;
17:40:36.946 [main] INFO  zengqiang.Log4jTest - Object[]

結(jié)論:
1趴拧、除了數(shù)組跟匿名類外溅漾,getCanonicalName()、getName()其它都相同著榴,而getSimpleName()只是截取前面的包部分添履,只留下java代碼中類名部分。
2脑又、數(shù)組中getName()通過[L 表示數(shù)組暮胧,getCanonicalName()通過在定義的類型后面加上[]表示數(shù)組,而getSimpleName()只是去掉getCanonicalName()返回結(jié)果前面的包部分问麸。getCanonicalName返回為null往衷,getSimpleName就是空字符串。
3严卖、匿名類中席舍,因為匿名類在java語音規(guī)范中是不能呈現(xiàn)出類結(jié)構的,它的位置不能通過表名稱表示出來哮笆,所以getCanonicalName()方法返回的是null,同理来颤,getSimpleName()方法返回的是代碼默認的空字符串,getName()返回通過$后面加上迭代數(shù)表示稠肘。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末福铅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子项阴,更是在濱河造成了極大的恐慌滑黔,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件环揽,死亡現(xiàn)場離奇詭異拷沸,居然都是意外死亡,警方通過查閱死者的電腦和手機薯演,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門撞芍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跨扮,你說我怎么就攤上這事序无⊙檎保” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵帝嗡,是天一觀的道長晶通。 經(jīng)常有香客問我,道長哟玷,這世上最難降的妖魔是什么狮辽? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮巢寡,結(jié)果婚禮上喉脖,老公的妹妹穿的比我還像新娘。我一直安慰自己抑月,他們只是感情好树叽,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谦絮,像睡著了一般题诵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上层皱,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天性锭,我揣著相機與錄音,去河邊找鬼叫胖。 笑死草冈,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的臭家。 我是一名探鬼主播疲陕,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼方淤,長吁一口氣:“原來是場噩夢啊……” “哼钉赁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起携茂,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤你踩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后讳苦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體带膜,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年鸳谜,在試婚紗的時候發(fā)現(xiàn)自己被綠了膝藕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡咐扭,死狀恐怖芭挽,靈堂內(nèi)的尸體忽然破棺而出滑废,到底是詐尸還是另有隱情,我是刑警寧澤袜爪,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布蠕趁,位于F島的核電站,受9級特大地震影響辛馆,放射性物質(zhì)發(fā)生泄漏俺陋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一昙篙、第九天 我趴在偏房一處隱蔽的房頂上張望腊状。 院中可真熱鬧,春花似錦瓢对、人聲如沸寿酌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醇疼。三九已至,卻和暖如春法焰,著一層夾襖步出監(jiān)牢的瞬間秧荆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工埃仪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乙濒,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓卵蛉,卻偏偏與公主長得像颁股,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子傻丝,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 什么是反射 反射是一個很牛的功能甘有,能夠在程序運行時修改程序的行為。但是反射是非常規(guī)手段葡缰,反射有風險亏掀,應用需謹慎。把...
    dashingqi閱讀 606評論 0 1
  • 讓我們一起認真對待之前可能沒有多在意的基礎知識之一 Java 反射泛释。 注意滤愕,這篇文章因為內(nèi)容太多,所以篇幅非常長...
    as_pixar閱讀 147評論 0 0
  • 前言怜校,本來只是想研究一下注解的间影,不過發(fā)現(xiàn),要懂注解先得懂反射茄茁,別問我為什么魂贬,你可以自己試試 JAVA反射 主要是指...
    justCode_閱讀 1,221評論 2 9
  • Day1: 在代碼中通過R.string.hello_world可以獲得該字符串的引用蔓搞; 在XML中通過@stri...
    冰凝雪國閱讀 1,393評論 0 5
  • 簡介 Class類表示正在運行的Java應用程序中的類和接口,枚舉和基本數(shù)據(jù)類型随橘,我們可以從中獲取到類的一切相關信...
    我是黃教主啊閱讀 2,607評論 2 7