Java注解(Annotation)详解
来源:互联网 发布:hadoop推荐算法 编辑:程序博客网 时间:2024/06/03 18:40
Java注解(Annotation)详解
对于Java开发的同学来说,注解(Annotation)应该是一个非常熟悉的语法,在开发的过程中,我们经常会用到注解,通过注解也让我们的开发变得更加简化;这里我们就来深入浅出的说一下Java中的这个特别重要的特性:注解(Annotation)
注解的介绍(Annotation)
注解是JDK 5.0版本引如的,源码作者Jaoshua Bloch
注解的作用是修饰编程元素(编程元素:包、类、方法、构造方法、成员变量等程序组成部分),提供了一种安全的类似于注释的机制,将信息或元数据与编程元素进行关联。
生成文档。这是最常见的,也是Java 最早提供的注解。常用的有@see @param @return 等 ;
跟踪代码依赖性,实现替代配置文件功能。例如SpringBoot 中大量基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;
在代码编译时进行格式检查或代码运行时进行配置信息的设置。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
注解的语法与组成
元注解
- @Document:定义该注解是否生成到当前文件的JavaDoc中
- @Retention:定义该注解的生命周期
- @Target:注解修饰的编程元素
- @Inherited:是否允许子类继承父类的注解
元注解的取值范围
@Retention
@Target
注解的语法和定义形式
- 注解以@interface关键字定义
- 注解中可包含成员,成员以无参数的方法形式被声明,方法名是该成员的名称,返回类型是该成员的类型
- 注解的成员赋值是通过@Annotation(name=value)来进行的
- 注解需要标明注解的生命周期(@Retention)和修饰编程元素(@Target)以及是否在JavaDoc中生成(@Documented)和是否被子类继承注解(@Inherited) ,这些信息通过元注解来进行实现
自定义注解
package _20170419;
import java.lang.annotation.*;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Table {String name() default "";
}
代码分析
- @Target(ElementType.TYPE)
表示该注解可作用于类,接口,注解或者枚举中
- @Retention(RetentionPolicy.RUNTIME)
表示该注解在运行时保留,永不丢弃,可以通过反射来获取注解中的成员值
- @Inherited
表示该注解会被子类继承
- @Documented
表示该注解会生成到当前文件的JavaDoc中
- @interface Table
表示该注解名称为Table
- String name() default “”;
表示该注解的成员名称为name,name的类型为String
获取注解的值
package _20170419;
import org.junit.Test;
@Table()
public class TableTest {@Test
public void validTableAnnotation(){
System.out.println(“开始注解过程”);
TableTest tableTest = new TableTest();if (TableTest.class.isAnnotationPresent(Table.class)) { Table table = TableTest.class.getAnnotation(Table.class); System.out.println("name:"+table.name()); }
}
}
- JAVA 注解(Annotation)详解
- Java注解(Annotation)详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解(Annotation)详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- html学习笔记
- C++作业4
- Android进阶之路
- 系统的简单注解
- 安装ubuntu server的注意事项
- Java注解(Annotation)详解
- 跨线程访问 & 线程池
- 奇怪的order by
- 实验-4
- C++作业4
- centos7 修改yum源为阿里源
- 【京东】C++研发工程师实习生面试
- Begining
- YARN Restapi : List running mapreduce apps which start before specified time