注解学习1

作用:为数据提供描述数据

概要

系统注解:
  * 内置注解
    * @Deperated
    * @Overrride
    * @SuppressWarnings
  * 元注解
    * @Rentention 
    * @Target
    * @Inhrited
    * @Documented

1.内置注解

@Deperated

用来标记一个方法,类,或者属性已经过期


@Override

用来标记一个方法是重载父类的, 会到他的上层或者上上层去寻找, 直到找到位置


@SupressWarning

源码:

@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    String[] value();
}
让编译器忽略一些提醒,比如过时的方法等

2.元注解

用来标注注解类的注解,可以用于自定义注解

@Retention

注解什么时候可见, 分为(运行时可见,.class 及源码中可见 , 源码可见)

源码:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface Retention {
    RetentionPolicy value();
}

添加注解时的参数类型为RetentionPolicy

public enum RetentionPolicy {
    CLASS,  //.class 或者源码中可见
    RUNTIME,  //运行时可见,可以通过反射获得
    SOURCE;  //仅在源码中可见

    private RetentionPolicy() {
    }
}
@Target

用于标记该注解适用于什么类型的元素(类,方法,变量等)

添加注解时的参数类型是ElementType

public enum ElementType {
    ANNOTATION_TYPE, //用于注解其他注解
    CONSTRUCTOR,
    FIELD,
    LOCAL_VARIABLE,
    METHOD,
    PACKAGE,  //该注解用于注解包声明
    PARAMETER,
    TYPE; //标示该注解用于注解类,接口,枚举类型

    private ElementType() {
    }
}
@Inhrited

表明被它修饰的注解具有继承性

@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface InheritedAnnotation {
}
class A{
    @InheritedAnnotion
    classB{}
    classC extends ClassB{}
    public void static print(){
      system.out.println(ClassC.class.isAnnotationPresent(InheritedAnnotation.class));
    }
}

最终 print 方法输出结果为true

@Documented

直接在需要加入到JavaDoc的地方加上该注解即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是注解(Annotation):Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和...
    九尾喵的薛定谔阅读 3,228评论 0 2
  • 深入理解 Java 注解 本文内容基于 JDK8。注解是 JDK5 引入的,后续 JDK 版本扩展了一些内容,本文...
    静默虚空阅读 479评论 0 0
  • 前言   平时在开发中接触过许多的注解,如@Override,@Nullable等,但自己代码中还没怎么用过。所以...
    yizhanzjz阅读 2,881评论 0 10
  • 注解 创建注解 下面代码创建了一个名为MyAnno的注解,有两个成员str和val。@Retention(…)注解...
    kylinxiang阅读 3,688评论 0 2
  • 1.引言从jdk1.5开始,引入了注解类Annotation,Annotation其实是一种接口,可以作用于类、方...
    明明_白_白阅读 830评论 0 1