目次
バイトコード比較結果期待通り mainの中の動作が大幅に異なる。HelloAspectWorld?.main()の処理は
メソッド呼び出しをして終了しているのだが、 0 new #2 <Class HelloAspectWorld?> 3 dup 4 invokenonvirtual #3 <Method HelloAspectWorld?.<init>():void> 7 invokevirtual #4 <Method HelloAspectWorld?.sayhello():void> 10 returnajcで作成したバイトコードのTEXT部分は期待通りである。 # まぁ、期待通りの割になんだかよくわからんが・・ 太字部分が javacで出てくる普通の所である。 0 new #2 <Class HelloAspectWorld?> 3 dup 4 invokenonvirtual #16 <Method HelloAspectWorld?.<init>():void> 7 invokestatic #43 <Method Trace.aspectOf():Trace> 10 invokevirtual #46 <Method Trace.ajc$before$Trace$1$705b637b():void> 13 invokevirtual #19 <Method HelloAspectWorld?.sayhello():void> 16 goto 28 19 astore_1 20 invokestatic #43 <Method Trace.aspectOf():Trace> 23 invokevirtual #49 <Method Trace.ajc$after$Trace$2$705b637b():void> 26 aload_1 27 athrow 28 nop 29 invokestatic #43 <Method Trace.aspectOf():Trace> 32 invokevirtual #49 <Method Trace.ajc$after$Trace$2$705b637b():void> 35 nop 36 return |