[JAVA]注解

[JAVA]注解

0.概述

官方描述:Java 注解(Annotation)用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。
注解:代码里的特殊标记,类比为贴在类、方法、属性、接口上的标签。有了注解,可以在不改变原有代码逻辑的基础上,在源文件中嵌入一些补充信息。即有了这些标记,在编译和运行时访问元数据信息。

1.自定义注解

1.1 格式及使用

/*
  1.自定义注解的格式和属性列表说明
 */
public @interface TestAnnotation {
   
    /*
     属性列表,支持的属性
     */
    //1.1int
    int test1();
    //1.2字符串
    String test2();
    //1.3注解
    TestAnnotation2 test3();
    //1.4枚举,并设置默认值
    TestA test4() default TestA.A;
    //1.5以上类型数组
    String[] test5();
    //不可以添加对象
    //Person test6();
}

/*
 2.使用及属性赋值:
   2.1注解中定义了属性,在使用时就需要给属性赋值,已设置默认值的属性可以不赋值
   2.2如果属性为value,且只有一个属性需要赋值,则可以省略key,直接赋值即可
   2.2数组中如果只有一个元素,则可以省略大括号
 */
@TestAnnotation(test1=1,test2 = "222",test3=@TestAnnotation2,test5 = {
   "aaa"})
class Person{
   }

1.2 本质

自定义注解:

public @interface TestAnnotation2 {
   
}

对以上自定义注解先编译: javac TestAnnotation2.java
再反编译: javap TestAnnotation2.class
输出:

public interface TestAnnotation.TestAnnotation2 extends java.lang.annotation.Annotation {
   
}

本质上就是一个继承了Annotation的接口,注解中的属性值本质上是接口中的抽象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值