文章詳情頁
java中可以通過類的class屬性得到該類的字節碼文件對象?
瀏覽:131日期:2024-01-23 15:13:54
問題描述
如Class c1 = Student.class;可是無論是Student類還是它繼承的Object類都沒有class屬性呀?
問題解答
回答1:謝邀。
首先糾正一個錯誤,class 是 keyword ,不是 Student 類里的 static member 。<class-name>.class 是 Java 中的某個特定語法。
其次,要得到該類的字節碼文件,必須到文件系統中去找,無非就是 Student.class.getResource/getResourceAsStream 之類的方法,比較麻煩。建議看下asm、cglib等字節碼開源項目。
最后,字節碼是種比較復雜的技術,不得已而用之,比如獲取方法參數里的Annotation(參考Spring Web MVC)。有些貌似可能和字節碼有關的技術,實際上可以繞過,例如基于interface的AOP,完全可以用Proxy而不是用字節碼來實現的。
回答2:我查的一個說法是,這個不是一個關鍵字,而是一個字面量,你可以嘗試直接再ide中敲“Student.class”,是會提醒你需要將這個值賦給某個變量的。如果后續有查到新的會再補充,至于類加載的話,可以參考我的一篇博客自定義類加載器-從.class和.jar中讀取
標簽:
java
相關文章:
1. css - 如何使用 vue transition 實現 ios 按鈕一樣的平滑切換效果2. angular.js - 關于$apply()3. mysql - 把一個表中的數據count更新到另一個表里?4. 網絡傳輸協議 - 以下三種下載方式有什么不同?如何用python模擬下載器下載?5. mysql數據庫做關聯一般用id還是用戶名6. 關于python切片的問題7. linux - 升級到Python3.6后GDB無法正常運行?8. mysql 里邊,自增長id,寫數據時,是先把數據寫進去,然后再給這條數據一個id,還是先給id,然后再把要插入的數據寫進去9. 多維數組如何在視圖中渲染10. javascript - 前端怎樣實現圖片剪切一部分上傳呢?像微信或者QQ上傳那樣呢?用的啥技術
排行榜
