2012-04-08 77 views
1

大家。我可以使用Javassist刪除方法的修飾符嗎?

我有一個類文件。

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

我想將其更改爲

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

我可以用它實現了Javassist? 如何使用javassist將註釋添加到類文件的方法中? 歡迎任何建議! 感謝

回答

0

這應該做的伎倆

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

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

只需使用CtMethod#setModifiers()設置所需要的掩。

+1

他可能想要保留原來的其他標誌,那麼使用cm.setModifiers(cm.getModifiers()&〜Modifier.ABSTRACT)會更好(刪除「abstract」修飾符,同時保持原樣) 。 – 2015-02-02 08:32:10

相關問題