您的位置:首页 > 编程语言 > Java开发

JAVA自定义注解

2017-06-07 20:03 309 查看

自定义注解

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface IgnoreAuth {

}


@Retention:注解的保留位置 

@Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS)    // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
@Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到


@Target:注解的作用目标

@Target(ElementType.TYPE)   //接口、类、枚举、注解
@Target(ElementType.FIELD) //字段、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR)  //构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包


@Document:说明该注解将被包含在javadoc中

@Inherited:说明子类可以继承父类中的该注解

@AnnatDemo注解 可以使用反射获取

public interface IClientProtocolEx extends IProtocol {
  int METHOD_START=0;
  @AnnatDemo(METHOD_START)
   public String say(String person);
}

Class ipt=IClientProtocalEx.class;
   Method[] mts=ipt.getMethod();
for(Method mt:mts)
   {
    AnnatDemo ad=mt.getAnnotation(AnnatDemo.class);//如果方法上  没有该注解  则返回null
int value=ad.value();
     System.out.println("value:"+value);
   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: