動態改變類結構 & 動態…

cchengone發表於2016-07-28
需要的包:javassist
public class JavassistDemo {
        // javassist asm
        public static void main(String[] args) throws Exception {
            ClassPool cp = ClassPool.getDefault();
            CtClass c = cp.get("com.test.Test");
                    // 新增一個函式
            String methodBody = "public void test(){System.out.println(\"CtNewMethod\"); }";
            CtMethod newMethod = CtNewMethod.make(methodBody, c);
            c.addMethod(newMethod);
            CtMethod m = c.getDeclaredMethod("print1");
                    // 執行函式前執行
            m.insertBefore("{ System.out.println(\"insertBefore\");}");
                    // 執行函式後執行
            m.insertAfter("{ System.out.println(\"insertAfter\"); }");
                    // 寫到新目錄
            c.writeFile("D:\\Work");
            // c.writeFile();
            Class

相關文章