タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

メソッド置き換えに関するkoizussのブックマーク (1)

  • javassist メソッドの置き換えは、setBodyで。

    Javassist 入門 以前、javassistを使っていて、メソッドのふるまいをかえるのにわざわざremoveしてしまってましたが、単純にsetBodyを使って内容をごっそり置き換えたほうがらくですね。 CtClassクラスのremoveMethodを使わずに、CtMethodのsetBodyを使う。 で、setBodyで置き換えるメソッドがもらう引数は、$1,$2,$3....って感じでうけとれます。 それで、staticメソッドでなければ、フィールド変数にはそのまま名前でアクセスできます。 あと、他のクラスにアクセスするためには、パッケージ名まで書かないとだめです。 以下、適当にサンプル。 import a.A; import javassist.CannotCompileException; import javassist.ClassPool; import javassist

  • 1