注解

来源:互联网 发布:java用到哪些函数 编辑:程序博客网 时间:2024/05/23 07:25

注解,annotation,用来修饰、标识一些带有特定功能的代码的,不同的注解规定了不同的功能,是为了解决配置文件过多带来的繁琐;

作用:描述一些不能用java来表示的信息,由编译器来测试和验证的信息;

实际的效果:生成描述性文件;

使用情景:一般用在为了解决描述符性质的类和接口的重复性工作;


@Deprecated 表明方法或类已经过时,不鼓励使用;

向注解设置参数,表示一些特定的操作,比如在@SuppressWarning(value = ‘unused’);

自定义注解要使用4个元注解来定义一些相关的属性,@Target用来定义自定义注解的作用域,@Retention 用来定义自定义注解的保留域,@Documented 用来表明是否保存到Javadoc(注释文档)里面,@Inherited 用来表明是否允许被继承;


自定义注解的写法,就是在接口interface前加上注解标记@;

注解的传入参数在自定义注解里也是参数的样式,只是后面多了个括号,表明该参数可以赋值,形式上比较像函数,但调用上还是参数的写法;注解的参数里,可以使用default加默认值指定默认值,这也意味这有default的参数可以不赋值,但是如果没有default,注解在使用时必须要给没有default的参数赋值,而如果必须要赋值的参数只有一个,那么可以在括号内直接写转入值,不需要写出参数名;

自定义注解的使用方法:

1.先定义注解 

2.创建注解处理器(继承自AnnotationProcessor接口,里面只有一个process的抽象方法,该方法的参数是指定的目标)

 3.在自定义的注解处理器的process方法里实现必要的功能(比如用反射的机制判断指定的目标有没有包含自定义的注解,如果有,将执行哪些操作)

4.创建自定义处理器的实例,调用处理器的process方法,传入指定的目标;

javac文件就是编译java文件的工具;

Apt是处理源代码级别的命令,意思是在代码编译前对代码进行分析处理,可以快速地构造复杂地注解处理器;

mirror包是用来获取源代码中的类型信息的,reflect包是用来获取运行时类型信息的。