java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java注解原理

深入Java注解原理Annotation

作者:JackeyJobs

这篇文章主要介绍了深入Java注解原理Annotation,注解可以附加在package,class,method,field等上面,可相当于添加了额外的辅助信息,可以通过反射机制编程实现对这些元数据的访问,需要的朋友可以参考下

Annotation注解

内置注解

元注解

import java.lang.annotation.*;
/**
 * @Description: 测试元注解
 */
public class Test02 {
    @MyAnnotation
    public void test(){
    }
}
//定义一个注解
//Target:表示我们的注解可以用在哪些地方
@Target(value = {ElementType.METHOD,ElementType.TYPE})
//Retention:表示我们的注解在什么地方还有效
//RUNTIME>CLASS>SOURCE
@Retention(value = RetentionPolicy.RUNTIME)
//Documented:表示是否将我们的注解生成在javadoc中
@Documented
//Inherited:子类可以继承父类的注解
@Inherited
@interface MyAnnotation{
}

自定义注解

import java.lang.annotation.*;
/**
 * @Description: 自定义注解
 */
public class Test03 {
    //注解可以显示赋值,如果没有默认值,就必须赋值
    @MyAnnotation2(name = "Java",schools = {"bilibili"})
    public void test(){}
    //只有一个值,并且为value时才可以省略
    @MyAnnotation3("")
    public void test2(){}
}
@Target(value = {ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //注解的参数:参数类型 + 参数名 ();
    String name();
    int age() default 0; //设置默认值
    int id() default -1; //默认值为-1,代表不存在
    String[] schools();
}
@Target(value = {ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation3{
    String value();
}

1

到此这篇关于深入Java注解原理Annotation的文章就介绍到这了,更多相关Java注解原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文