2011-02-15 113 views
4

在用户定义的注释中,两个元注释(目标和保留)的确切默认值是什么?Java注释的默认属性

public @interface AnnotationWithDefaultProps { 
} 

回答

6

根据源代码,它们都没有默认值,这意味着您必须提供它,无论何时使用注释。缺少注释的含义在Javadoc定义:

对于Target这意味着

如果目标元注释上不存在注释类型声明,声明的类型可以在任何程序中使用元件。

Retention它意味着

如果没有保留注释存在于注释类型声明,保留策略默认为RetentionPolicy.CLASS。

2

严格地说,没有未指定注释的默认值。注释根本就不在那里。

但对于这两个特别

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Retention.html

如果没有保留注释存在于注释类型声明,保留策略默认为RetentionPolicy.CLASS。

和等效为目标,

如果目标元注释上不存在注释类型声明,声明的类型可以任何程序元件上使用。