package Ġcom . wang du wei . asm . source . part 2 Ċ Ċ import Ġcom . wang du wei . asm . source . utils . Class Output Util Ċ import Ġorg . object web . asm . Class Writer Ċ import Ġorg . object web . asm . Op codes Ċ import Ġorg . object web . asm . util . Trace Class Visitor Ċ import Ġjava . io . PrintWriter Ċ Ċ /** Ċ Ġ* ĠClass Write Ġ è¾ĵåĩº çļĦæĺ¯ åŃĹèĬĤ æķ°ç»Ħ ï¼Į å¯¹äºİ æĪĳä»¬ ç¡®è®¤ ä¿®æĶ¹ åĲİçļĦ åŃĹèĬĤ çłģ æĺ¯åĲ¦ ç¬¦åĲĪ é¢Ħ æľŁ çĶ¨ å¤Ħ å¹¶ ä¸į å¤§ ï¼Į Ċ Ġ* Ġåľ¨ åīį éĿ¢ ï¼Į æĪĳä»¬ æĺ¯ éĢļè¿ĩ ĠFile Ġæĸĩä»¶ æµģ æĵįä½ľ ï¼Į å°Ĩ åŃĹèĬĤ çłģ è¾ĵåĩº åĪ° æĸĩä»¶ ï¼Į çĦ¶åĲİ åĪ©çĶ¨ Ġjav ap Ġ æĮĩä»¤ æĿ¥ æŁ¥çľĭ æĺ¯åĲ¦ ç¬¦åĲĪ é¢Ħ æľŁ ãĢĤ Ċ Ġ* Ġåľ¨ ĠAS M Ġä¸Ń æıĲä¾ĽäºĨ ĠTrace Class Visitor Ġ çĶ¨æĿ¥ å¯¹ æĪĳä»¬çļĦ è¾ĵåĩº åģļ æ£ĢæŁ¥ ï¼Į ä¸į å¿ħ è¿Ļ ä¹Ī éº » çĥ ¦ Ċ Ġ*/ Ċ interface ĠTrace Class Visitor Demo Ġ{ ĊĠĠĠ Ġvar ĠclassName : ĠString ĊĠĠĠ Ġvar Ġclass Version : ĠInt ĊĊĠĠĠ Ġfun Ġget Trace Info (): ĠString Ċ } Ċ Ċ /** Ċ Ġ* Ġ ä¾Ŀ çħ§ ä¸Ĭ éĿ¢çļĦ ĠTrace Class Visitor Demo Ġä¸º ä¾ĭ Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġclass Writer Ġ= ĠClass Writer ( 0 ) ĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġä½¿çĶ¨ ĠTrace Class Visitor ï¼Į åĲĮæĹ¶ ä½¿çĶ¨ ĠSystem . out Ġæµ ģ å°Ĩ ç»ĵæŀľ è¾ĵåĩº ãĢĤ ĊĠĠĠĠ Ġ åı¦å¤ĸ æµĭè¯ķ æĹ¶ è¿ĺæľī ä¸Ģç§į åĨĻ æ³ķ ï¼Į è¾ĵåĩº åĪ° æĸĩä»¶ ãĢĤ PrintWriter (" asm _ example / files / Trace Class Visitor Demo . class ") Ġ ä½Ĩæĺ¯ è¾ĵåĩº çļĦæĸĩä»¶ éĢļè¿ĩ Ġjav ap Ġ- v Ġ æĮĩä»¤ æŁ¥çľĭ ä¼ļ æĬ¥éĶĻ ãĢĤ ĊĠĠĠĠ Ġ è¯¦æĥħ åı¯ åıĤçħ§ ï¼ļ https :// stackoverflow . com / questions / 6 3 4 4 3 0 9 9 / asm - trace class visitor - output - file - is - error ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġtrace Class Writer Ġ= ĊĠĠĠĠĠĠĠ ĠTrace Class Visitor ( class Writer , ĠPrintWriter ( System . out )) ĊĠĠĠ Ġtrace Class Writer . visit ( ĊĠĠĠĠĠĠĠ ĠOp codes . V 1 _ 7 , ĊĠĠĠĠĠĠĠ ĠOp codes . ACC _ PUBLIC Ġ+ ĠOp codes . ACC _ INTERFACE Ġ+ ĠOp codes . ACC _ AB STR ACT , ĊĠĠĠĠĠĠĠ Ġ" com . and oter . asm _ example . part 2 / Trace Class Visitor Demo ", ĊĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠ Ġ" java / lang / Object ", ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ) ĊĠĠĠ Ġtrace Class Writer . visit Source (" Trace Class Visitor Demo . class ", Ġnull ) ĊĠĠĠ Ġtrace Class Writer . visit Field ( Op codes . ACC _ PUBLIC + ĠOp codes . ACC _ FINAL Ġ+ ĠOp codes . ACC _ STATIC , Ġ" className ", Ġ" Ljava / lang / String ;", Ġnull , Ġ""). visit End () ĊĠĠĠ Ġtrace Class Writer . visit Field ( Op codes . ACC _ PUBLIC + ĠOp codes . ACC _ FINAL Ġ+ ĠOp codes . ACC _ STATIC , Ġ" class Version ", Ġ" I ", Ġnull , Ġ 5 0 ). visit End () ĊĠĠĠ Ġtrace Class Writer . visit Method ( ĊĠĠĠĠĠĠĠ ĠOp codes . ACC _ PUBLIC Ġ+ ĠOp codes . ACC _ AB STR ACT , ĊĠĠĠĠĠĠĠ Ġ" get Trace Info ", ĊĠĠĠĠĠĠĠ Ġ" () Ljava / lang / String ;", ĊĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ). visit End () ĊĠĠĠ Ġtrace Class Writer . visit End () ĊĊĠĠĠ ĠClass Output Util . byte 2 File (" asm _ example / files / Trace Class Visitor Demo 1 . class ", Ġclass Writer . toByteArray ()) Ċ }