System.out.println("hello world");
return;
的字節碼是
getstatic System.out
ldc #? // 從常量池取"hello world"字符串
invokevirtual java/io/PrintStream.println(Ljava/lang/Object)
return
於是乎重寫壹份方法即可。
用javaassist會方便壹些。只需要java知識。直接將方法設置為
{{
System.out.println("hello world");
}}
即可
字節碼類庫,特別是javaassist這種簡單易懂的,網上資料很多,花5分鐘看下就行了。
另外,如果是非靜態方法也可以試試動態代理,通過接口訪問可用自帶的Proxy做,否則就用cglib好了。