[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12156] Re: (議事録)J2SE 5.0 Tiger 第3回 (RetentionPolicy.CLASS)



  高橋(智)です。

  先日の読書会の議事録の、RetentionのポリシーのデフォルトがCLASSなのは、
どこかで既定されているのか? の部分ですが、
[Retention.javaより引用]
-------------------------------------------------------------
package java.lang.annotation;
...
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();  // <-- default の指定が無い!!
}
-------------------------------------------------------------
のソースコードによりますと default の指定が無いわけですが
Java Language Specification 3rd Ed の 
http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html
の記述によりますと、

[Java Language Specification 3rd Edより引用]
------------------------------------------------------------------
9.6.1.2 Retention
...
...
If T does not have a (meta-)annotation m that corresponds to
annotation.Retention, then a Java compiler must treat T as if
it does have such a meta-annotation m with an element whose value
is annotation.RetentionPolicy.CLASS.
------------------------------------------------------------------
ということのようです。

-- 
高橋智宏