Annotation注解

喜夏-厌秋 提交于 2019-12-24 00:18:44

一  注解的作用:

1. Annotation(注解)是JDK5.0引入的新技术。它不是程序本身,用于对程序作出解释(跟注释类似)。

2. 可以被其他代码读取(比如:编译器等)

3. 这里对于内部注解不做讨论,有兴趣可以自行百度

二 注解的格式:

注解是以 “@注释名称(参数1,参数2...)” 在代码中存在。

例如:@SupperssWarnings(value = "unchecked")

三 注解的作用域:

可以作用于:package , class , method , field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制等手段

实现对这些元数据的访问。

四 自定义注解

package cn.foxsand.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 1. @interface:声明一个注解类
 * 2. value():每一个方法实际上是声明了一个配置参数
 *      2.1 方法名称 = 参数名称
 *      2.2 返回值类型 = 参数的类型(返回值类型只能是:基本类型、Class、String、enum)
 *      2.3 通过default来声明参数的默认值
 *      2.4 如果只有一个参数成员,通常参数名为value(非强制性)
 * 3. @Target、@Retention:元注解,JAVA定义了4个标准的meta-annotation类型(Target、Retention、Documented、Inherited),它们被用来提供对其他注解类型做说明,
 *    这里只对最常用的2个注解做说明。
 */
//描述注解的使用范围,取值于:ElementType(PACKAGE:包、TYPE:[类、接口、枚举、Annotation类型]、CONSTRUCTOR:用于描述构造器、FIELD:描述属性、METHOD:方法
@Target(value = {ElementType.METHOD , ElementType.TYPE})
//注解的保存级别:取值于:RetentionPolicy(SOURCE:源文件有效、CLASS:class文件有效、RUNTIME:运行时有效,为RUNTIME时可以被反射读取。
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation01 {
    String value() default "";
}

注:注解解析,整理中!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!