乐趣区

关于java:java基础之二十二自定义注解

一、注解

1、什么是注解

1、Annotation 是 Java5 开始引入的新特色,中文名称叫 注解
2、它提供了一种平安的相似正文的机制,用来将任何的信息或元数据(metadata)与程序元素(类,办法,成员变量) 进行关联
3、为程序的元素(类,办法,成员变量) 加上更直观更明了的阐明,这些阐明信息是与程序的业务逻辑无关,并且供指定的工具或框架应用
4、Annontation 像一种修饰符一样,利用于包,类型,构造方法,办法,成员变量,参数及本地变量的申明语句中
5、Java 注解是附加在代码中的一些元信息,用于一些工具在编译,运行时进行解析和应用,起到阐明配置的性能
6、注解不会也不能影响代码的理论逻辑,仅仅起到辅助性的作用。蕴含在 java.lang.annotation 包中

2、注解的作用

1、生成文档,这是最常见的,也是 java 最早提供的注解,罕用的有 @param,@return 等
2、跟踪代码依赖性,实现代替配置文件的性能
3、在编译时进行格局查看,如 @override 放在办法前,如果你这个办法并不是笼罩了超类办法,则编译时就能查看出

二、自定义注解

1、元注解

package com.msbline.annotation;
import java.lang.annotation.*;
public class MetaAnnotation {@MyAnnotation()
    public void test(){}
}
//target 用来申明注解的应用范畴
//Retention 用来申明注解在什么时候失效, 个别都是运行时
//Documented 示意是否显示在 javadoc 文档外面
//Inherited 示意以后注解是否可能被继承
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface MyAnnotation{
    // 定义的形式看起来像是办法,实际上是在应用注解的时候填写的参数名称,默认的名称是 value
 // 自定义注解中填写的所有办法都须要在应用注解的时候,增加值,很麻烦,因而蕴含默认值
 String name() default "zs";
    int age() default 12;
    int id() default 1;
    String[] likes() default {"1","2"};
}
退出移动版