手记

Annotation 注解笔记

简介

1)开发人员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充信息。可以用来修饰类、属性、方法,并且不影响程序的运行,无论是否使用Annotation代码都可以正常执行。

2)接口

import java.lang.annotation.Annotation
系统内建的Annotation

1)@Override:主要的实在覆写的时候使用,用于保证覆写方法的正确性。

2)@Deparecated:主要功能是用来申明一个建议使用的方法。如果在程序中使用了该方法,则在编译的时候出现警告信息。

3)@SuppressWarning主要功能是用来压制警告。

自定义的Annotation

1)定义一个简单的Annotation

[public] @interface Annotation 名称{
    数据类型 数据变量();
}

2)向Annnotation中设置内容

public @interface MyDefaultAnnotationMoreParam{
    public String key();    //接收设置变量
    public String value();
@MyDefaultAnnotationMoreParam("name","张三");    //使用自定义的Annotation
calss Dome{
}

3)默认值:只要在定义Annotation时设置了属性,就必须在使用时设定它们的属性。

public @interface MyDefaultAnnotationMoreParam{
    public String key() default "baidu";    //接收设置的内容
    public String value();

4)使用枚举限制设定的内容

public enum Browser{
    baidu,firefox,google
}
Retention和RetentionPolicy

Retention定义一个Annotation的保存范围。Retention定义存在一个RetentionPolicy的变量。

RetentionPolicy变量范围

1)SOURCE:保留在程序的源文件中(.java),编译成功之后不会保留在类文件中(.class)。

2)CLASS:保存在源文件和类文件中,不会被加载到虚拟机(JVM)中,如果没有指定范围,则默认是此值。

3)RUNTIME:保存在源文件和类文件中,在执行时会加载到虚拟机中。

通过反射取得Annotation

1)可以取得全部的Annotation

2)可以取得指定的Annotation的内容

@Target

对一个自定义的Annotation能在指定的位置出现。

@Documented

对一个自定义的Annotation进行注释。

@Inherited注释

用于标志一个父类注释是否可以被子类所继承。

1人推荐
随时随地看视频
慕课网APP