2017-01-24 63 views
1

雖然ByteBuddy有一個非常好的API,但我想知道它是否適合我的用例,或者如果我應該更好地堅持低級別的ASM。ByteBuddy ElementMatcher基於方法字節代碼

我需要的可能是某種ElementMatcher,如果方法包含某種可配置的字節碼(例如PUTSTATIC),它將返回一個匹配項。對於所有匹配方法,我希望在方法的開始處編織其他代碼。

作爲一種解決方法,我當然可以使用ASM掃描字節碼,構建一些元數據,然後根據分析結果使用ByteBuddy編織附加代碼(我現在使用ASM的類型以及)。

雖然看起來不錯。有沒有更簡單的方法來做這樣的事情?

回答

1

字節好友與TypeDescription S和MethodDescription S的既可以代表一個加載ClassMethod或表示解析的類文件進行操作。因此,Byte Buddy沒有辦法知道方法包含哪些字節碼。

對於字節碼級操作,我通常推薦使用由Byte Buddy爲此目的而由AsmVisitorWrapper API公開的ASM。