私の目標
実行時に比較が行われるタイミング(または、*、-、/、>、<、..などの他の操作)を検出できるようにするため。
これは、Javassistまたはow2ASMを使用してクラスのバイトコードを編集するために実現する必要があります
達成しなければならないこと
このコード
public class Test{
public void m(){
if(a>2){
//blablabla
}
}
}
になる必要があります
public class Test{
public void m(){
if(someExternalClass.greaterThan(a,2)){
//blalbla
}
}
}
greatThanは、「>」とまったく同じ結果を返しますが、比較の量を節約するためにも使用されます。その後、比較が行われるたびに外部クラスに通知されます。
追記
それは、手術があるところならどこでも行われなければなりません。したがって、ifステートメントだけではありません。
これの意味は
int a = c+d;
またになる必要があります
int a = someExternalClass.add(c,d);
Javassistまたは他のライブラリでこれを実現する方法について何か提案はありますか。
IFLT、IFGTなどのオペコードと関係があると思います