国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java中可以通過(guò)類(lèi)的class屬性得到該類(lèi)的字節(jié)碼文件對(duì)象?

瀏覽:133日期:2024-01-23 15:13:54

問(wèn)題描述

如Class c1 = Student.class;可是無(wú)論是Student類(lèi)還是它繼承的Object類(lèi)都沒(méi)有class屬性呀?

問(wèn)題解答

回答1:

謝邀。

首先糾正一個(gè)錯(cuò)誤,class 是 keyword ,不是 Student 類(lèi)里的 static member 。<class-name>.class 是 Java 中的某個(gè)特定語(yǔ)法。

其次,要得到該類(lèi)的字節(jié)碼文件,必須到文件系統(tǒng)中去找,無(wú)非就是 Student.class.getResource/getResourceAsStream 之類(lèi)的方法,比較麻煩。建議看下asm、cglib等字節(jié)碼開(kāi)源項(xiàng)目。

最后,字節(jié)碼是種比較復(fù)雜的技術(shù),不得已而用之,比如獲取方法參數(shù)里的Annotation(參考Spring Web MVC)。有些貌似可能和字節(jié)碼有關(guān)的技術(shù),實(shí)際上可以繞過(guò),例如基于interface的AOP,完全可以用Proxy而不是用字節(jié)碼來(lái)實(shí)現(xiàn)的。

回答2:

我查的一個(gè)說(shuō)法是,這個(gè)不是一個(gè)關(guān)鍵字,而是一個(gè)字面量,你可以嘗試直接再ide中敲“Student.class”,是會(huì)提醒你需要將這個(gè)值賦給某個(gè)變量的。如果后續(xù)有查到新的會(huì)再補(bǔ)充,至于類(lèi)加載的話(huà),可以參考我的一篇博客自定義類(lèi)加載器-從.class和.jar中讀取

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 陆川县| 澜沧| 荆门市| 安岳县| 大荔县| 垣曲县| 柳州市| 三穗县| 顺平县| 宜丰县| 麻栗坡县| 苏尼特右旗| 格尔木市| 高阳县| 依兰县| 宁海县| 丰城市| 东乡族自治县| 镇原县| 叙永县| 莒南县| 新巴尔虎左旗| 涟源市| 朝阳县| 德保县| 甘德县| 沙田区| 独山县| 武鸣县| 西平县| 朝阳市| 正镶白旗| 榆中县| 龙里县| 西峡县| 昭觉县| 修武县| 柳江县| 永仁县| 黑水县| 屏东县|