差分表示


* バイトコード比較結果
期待通り 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