我正在寻找@interface的实现。但似乎@interface不需要实现。
这些注释只包含编译器检查的信息。并且编译器会将这些信息放到类文件中。然后我们使用字节码阅读器或反射API来读取这些信息 回来。
我理解是对吗?
答案 0 :(得分:1)
我正在寻找@interface的实现。但似乎@interface不需要实现。
如果你的字面意思是语言结构@interface
,那么你应该注意它本身并不是一个注释,它看起来很相似。它是定义注释类型时使用的关键字。它实际上是两个令牌,@
和interface
之间可以有空格。请参阅:Java 7 Language Specification - 9.6. Annotation Types
这些注释只包含编译器检查的信息。并且编译器会将这些信息放到类文件中。然后我们使用字节码阅读器或反射API来读取这些信息。
正确,注释只是元数据,它们自己从不做任何事情。可见性取决于Retention元注释。根据保留策略,它们可以使用反射对运行时可见或仅限于源代码,因此它们不会包含在字节码中。最常见的方法可能是使用反射,另一种方法是在编译之前使用注释处理器。