【发布时间】:2014-05-18 06:59:30
【问题描述】:
我正在寻找@interface 的实现。但似乎@interface 不需要实现。
那些注解只携带编译器检查的信息。编译器会将这些信息放入类文件中。然后我们使用字节码阅读器或反射 API 来读取这些信息 返回。
我的理解对吗?
【问题讨论】:
标签: java annotations
我正在寻找@interface 的实现。但似乎@interface 不需要实现。
那些注解只携带编译器检查的信息。编译器会将这些信息放入类文件中。然后我们使用字节码阅读器或反射 API 来读取这些信息 返回。
我的理解对吗?
【问题讨论】:
标签: java annotations
我正在寻找@interface 的实现。但似乎@interface 不需要实现。
如果你的字面意思是语言结构@interface,那么你应该注意它本身并不是一个注解,它只是看起来很相似。它是定义注释类型时使用的关键字。它实际上是两个标记,@ 和 interface,它们之间可以有空格。见:Java 7 Language Specification - 9.6. Annotation Types
那些注解只携带编译器检查的信息。编译器会将这些信息放入类文件中。然后我们使用字节码阅读器或反射 API 来读取这些信息。
正确,注释只是元数据,它们从不自己做任何事情。可见性取决于Retention 元注释。根据保留策略,可以使用反射使它们对运行时可见或限制在源代码中,因此它们不会包含在字节码中。最常见的方法可能是使用反射,另一种方法是在编译前使用注解处理器。
【讨论】: