JavassistJava 字節(jié)碼編輯類庫
Javassist是一個開源的分析、編輯和創(chuàng)建Java字節(jié)碼的類庫。是由東京技術(shù)學(xué)院的數(shù)學(xué)和計算機科學(xué)系的 Shigeru Chiba 所創(chuàng)建的。它已加入了開放源代碼JBoss 應(yīng)用服務(wù)器項目,通過使用Javassist對字節(jié)碼操作為JBoss實現(xiàn)動態(tài)AOP框架。
Javassist(JAVA 編程ASSISTant)使Java字節(jié)碼操作變得簡單。 它是一個用Java編輯字節(jié)碼的類庫; 它使Java程序能夠在運行時定義新類,并在JVM加載時修改類文件。 與其他類似的字節(jié)碼編輯器不同,Javassist提供兩個級別的API:源級別和字節(jié)碼級別。 如果用戶使用源級API,他們可以在不知道Java字節(jié)碼規(guī)范的情況下編輯類文件。 整個API僅使用Java語言的詞匯表進(jìn)行設(shè)計。 您甚至可以以源文本的形式指定插入的字節(jié)碼; Javassist即時編譯它。 另一方面,字節(jié)碼級API允許用戶直接編輯類文件作為其他編輯器。
示例代碼:
ClassPool pool = ClassPool.getDefault();
CtClass cc = pool.get("test.Rectangle");
cc.setSuperclass(pool.get("test.Point"));
cc.writeFile();
評論
圖片
表情
