有没有办法修改.class文件以便为某些方法添加Java注释?基本上我想遍历jar文件中的每个类文件的方法并注释某些类文件。请注意,在使用jar文件时,这不是在运行时。相反,在我完成之后,我想要使用注释修改类文件。
我可以访问源代码,所以如果有一个自动源代码修饰符,那也可以...
答案 0 :(得分:8)
实际上,这是AspectJ的经典用例:
declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")
虽然我会授予您直接字节代码操作功能更强大的功能,但AspectJ更加用户友好,当您做错事时它会立即为您提供编译器警告。
此外,如果您使用Load Time Weaving,则可以保持原始库jar不变,因为编织发生在类加载时。
<强>参考:强>
答案 1 :(得分:4)
谷歌搜索了一个小时左右this article,这似乎完全回答了我的问题:使用ASM。要使用更改的字节码编写类文件,请使用ClassWriter。
嗯,我猜是时候开始工作了。 :)