差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行は
このように表示します。
* バイトコード比較結果
期待通り mainの中の動作が大幅に異なる。~
HelloAspectWorld.main()の処理は
- HelloAspectWorldクラスのインスタンスを作る
- HelloAspectWorld.sayhello()を呼び出す
だけなので、javacで作成したバイトコードのTEXT部分はクラス、インスタンスを作って~
メソッド呼び出しをして終了しているのだが、
--(
0 new #2 <Class HelloAspectWorld>
3 dup
4 invokenonvirtual #3 <Method HelloAspectWorld.<init>():void>
7 invokevirtual #4 <Method HelloAspectWorld.sayhello():void>
10 return
--)
ajcで作成したバイトコードの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
--)
Last-modified: 2006-01-13 17:40:41