# annocation **Repository Path**: wangxuwen/annocation ## Basic Information - **Project Name**: annocation - **Description**: 在 Java 1.8 版本 基础上深入学习注解的使用 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java注解 ## 1、什么是注解 - Annotation是从JDK5.0开始引入的新技术 - Annocation的作用:不是程序本身,可以对程序作出解释,(这一点和注释comment没什么区别) 可以被其他程序(比如:编译器等)读取 - Annotation的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked"). - Annotation在那里使用?可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过发射机制编程实现对这些元数据的访问。 ## 2、内置注解 - @Override:定义在Java.lang.Override中,此注解只适用于修饰方法。表示一个方法声明打算重写超类中的另一个方法声明。 - @Deprecated:定义在Java.lang.Deprecated中,此注解可以修饰方法、属性、类。表示不建议使用该方法、属性、类。因为他很危险或者存在更好的选择。(通常在代码中调用时提示使用该注解的地方已过时) - @SuppressWarnings:定义在java.lang.SuppressWarnings中,用来抑制编译时的警告信息。 与前两个注解有所不同,你需要添加一个参数才可以使用。这些参数都是已经定义好了的。我们选择性的使用就好。 @SuppressWarnings("all") @SuppressWarnings("unchecked") @SuppressWarnings(value={"unchecked","deprecation"}) ... ... ## 3、元注解 - 元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annocation类型,他们被用来提供对其他annocation类型的说明 - 这些类型和他们所支持的类在java.lang.anncation包中可以找到 @Target 用于描述注解的使用范围 即:该注解可以用在什么地方 @Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期(SOURCE < CLASS < RUNTIME) @Document 说明该注解被包含在Javadoc中 @Inherited 说明子类可以继承父类中的该注解 ## 4、自定义注解 - 使用@interface自定义注解时,自动继承了java.lang.Annotation接口 - 分析 1、@interface用来声明一个注解,格式:public @interface 注解名称 { 定义内容 } 2、其中的每一个方法实际上是声明了一个配置参数 3、方法的名称就是参数的名称 4、返回值类型就是参数类型(返回值类型只能是基本类型、class、String、enum) 5、可以通过default来声明参数的默认值 6、如果只有一个参数成员,一般参数名为 value(也可以去掉) 7、注解元素必须要有值。我们定义注解元素时,经常使用空字符串、0 来作为默认值