总结
1、注解可以作为另外一个类的成员属性,类似于内部类。
2、通过一个类将具有类似功能的注解组织起来
3、InterfaceAudience.java(接口观众类)的作用,因为java自身的权限访问控制比较严格,不符合访问控制的语法将会导致报错。hadoop中的这个类相当于是从应用层面对访问做的一个控制
4、使用该类中的注解时,不需要实例化该类,可以直接使用,注解可以直接使用。
代码
InterfaceAudience.java
package com.ruanwenfu;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class InterfaceAudience {
//"成员变量" 公有访问
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Public{};
//受限访问 只有特定项目可以访问
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface LimitedPrivate{
String[] value();
}
//私有
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Private{};
private InterfaceAudience(){} //构造方法私有化
}