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