我可以用Javassist删除方法的修饰符吗?

时间:2012-04-08 02:22:27

标签: annotations javassist

大家。

我有一个班级档案。

public class ClsSync {
     public synchronized void biat(){
     }    
}

我想将其更改为

public  void biat(){   // delete the synchronized keyword
}

我可以使用Javassist实现它吗?  如何使用javassist向类文件的方法添加注释? 欢迎任何建议! 感谢

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题

    ClassPool cp = ClassPool.getDefault();
    CtClass cc = cp.get("ClsSync");

    CtMethod cm = cc.getDeclaredMethod("biat");
    cm.setModifiers(Modifier.PUBLIC);

只需使用CtMethod#setModifiers()设置所需的掩码。