在接口类型上使用注释有什么好处?

时间:2015-06-27 10:48:41

标签: java types annotations java-8

在此example中,注释类型(@interface ClassPreamble { String author(); String date(); int currentRevision() default 1; String lastModified() default "N/A"; String lastModifiedBy() default "N/A"; // Note use of array String[] reviewers(); } )下方:

interface

被编译为interface annotationtype.ClassPreamble extends java.lang.annotation.Annotation{ public abstract java.lang.String author(); public abstract java.lang.String date(); public abstract int currentRevision(); public abstract java.lang.String lastModified(); public abstract java.lang.String lastModifiedBy(); public abstract java.lang.String[] reviewers(); } 类型:

interface

因此,在运行之前,注释类型将被编译为@interface类型。

在java中,使用注释类型(interface)比foo: bar: baz 类型有什么优势?

2 个答案:

答案 0 :(得分:6)

接口是一种对象建模技术,允许对象实现与多种类型相关联的行为(但不是状态)。

注释是一种在代码中嵌入类型化元数据的技术;此元数据旨在供工具(测试框架,代码生成器等)使用,但它们没有语言级语义。您可以将它们视为附加到某些程序元素的结构化/类型化注释,可以通过反射访问它们。

在幕后,注释被实现为接口,主要是为了方便起见,但相似性可能比理解它们的用途更有用。

答案 1 :(得分:5)

如果手动执行编译器自动执行的操作,则不会定义注释。根据{{​​3}},

  

手动扩展[amount DECIMAL(8,4)]的界面未定义注释类型。

因此,在Java中定义注释需要java.lang.annotation.Annotation语法。