注释存储在类文件中的哪个位置

时间:2013-06-22 11:20:17

标签: java annotations bytecode

我正在尝试检测一个类文件,但我只是想知道注释以类文件格式存储在哪里。我尝试将它们放在接口表中,但是当我这样做时,它只将它们识别为接口而不是注释。

2 个答案:

答案 0 :(得分:4)

它们存储在类的RuntimeVisibleAnnotationsRuntimeInvisibleAnnotations属性以及方法类成员中,以及方法的RuntimeVisibleParameterAnnotationsRuntimeInvisibleParameterAnnotations属性中参数。您可以在Java VM Specification中找到有关类文件格式的更多详细信息。

答案 1 :(得分:0)

当试图理解Java字节码时,一个好的起点是在普通Java中编写您想要使用字节码创建的类。编译它,然后使用工具检索生成的字节码。

以下是我能想到的一些工具:

  • ASM的Textifier(此类有一个main方法,可以让它轻松运行)
  • Intellij IDEA Show bytecode查看
  • Eclipse的
  • Bytecode outline插件