有没有一种方法可以修改.class文件,以便为某些方法添加Java注释?基本上,我想遍历jar文件中每个类文件的方法并注释某些方法。请注意,这不是在使用jar文件时运行时。相反,完成后,我希望具有已注释的修改后的类文件。我可以访问源代码,因此如果有自动源代码修改器,那也可以...我假设我需要像Javassist或ASM这样的工具。如果是这样,请问我应该使用哪一个,并且如何去做?
实际上,这是AspectJ的一个经典用例: declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor") 虽然直接的字节码操作更加强大,但AspectJ更加易用,并且在你做错事情时立即给出编译器警告。此外,如果您使用Load Time Weaving,则可以保持原始库jar不变,因为织入发生在类加载时。 参考资料: 声明注释 实战中的AspectJ (书籍)