3_关于java中的注解

  • 注解是那些插入到源代码中__使用其他工具__可以对其进行处理的标签
  1. 注解不会改变编译方式,无论是否包含注解,生成的虚拟机指令是相同的

  2. 注解的用途包括
    (1) 自动生成。例如bean信息类
    (2) 测试、日志等代码的自动生成

  3. 需要专门的__处理工具__处理注解,向相应的处理工具可以理解的代码中插入注解

  4. 注解本身不干任何事情,需要工具支持才有用

  5. 注解的形式:
    @Test(timeout=“10000”)
    括号里面的是__元素__

  6. 每个注解都必须通过一个__注解接口__来定义

eg.


@Target(Element.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test
{
    long timeout() default 0L;
}

其中, Target和Retention是元注解

  • 注解可以在__运行__时被处理的,也可以在__源码__级别进行处理

  • 运行时处理的过程:

源文件 -->java编译器 --> 类文件 --> java虚拟机 --> 通过反射机制处理注解

  • 注解语法

(1) 注解接口


public @interface xxx {

    type1 elementName1() default value1;
    type2 elementName2();
}

2° 注解元素的类型

基本类型

String

Class

enum

注解类型

前面类型组成的数组

(2) 注解


@xxx(elementName1=value1, elementName2=value2)
@BugReport(assigned="Harry", severity=10)

2° 元素的顺序无关紧要

3° 如果某个元素的值未指定,则使用声明的默认值

  • 一个项可以有多个注解

  • 注解可以用在方法、类、成员、局部变量等

  • 所有的注解接口都隐式地扩展 java.lang.annotation.Annotation接口,而这个接口是一个常规接口,不是注解接口

  • 标准注解

例如

@Deprecated

@Override

@Target

@Retention

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值