注解(Annotation)(一)

Java 注解( Annotation )又称 Java 标注,是 JDK5.0 引入的一种注释机制。
Java 语言中的类、 构造器、 方法、成员变量、参数等都可以被注解进行标注。

自定义注解 --- 格式

自定义注解就是自己做一个注解来使用。

public @interface 注解名称{
    
    public 属性类型 属性名() default 默认值;
            //Java支持的数据类型基本上都支持

}
//自定义注解
public @interface MyTest1{

    String a();
    boolean b() default true;
    String[] c();

}

//应用
@MyTest1(a = "AA", c = {"CA", "CB"})
public class AnnotationTest1{...}

注解的作用

1. Java 中类、方法、成员变量做标记,然后进行特殊处理 ,至于到底做何种处理由业务需求来决定。
2.例如: JUnit 框架中,标记了注解 @Test 的方法就可以被当成测试方法执行,而没有标记的就不能当成测试方法执行。

特殊属性

1. value属性,如果只有一个value属性的情况下 使用value属性的时候可以省略value名称不写!!
2. 但是如果有多个属性,  且多个属性没有默认值,那么value 名称 是不能省略的。
public @interface MyTest2{

    String value01();

}

//应用
@MyTest1("value")
public class AnnotationTest2{...}
public @interface MyTest2{

    String value01();
    int age default 20;

}

//应用
@MyTest1("value")
public class AnnotationTest2{...}

注解的原理

元注解

元注解:注解注解的注解。

元注解有两个:

@Target: 约束自定义注解只能在哪些地方使用

@Target可使用的值定义在ElementType枚举类中,常用值如下:

TYPE,类,接口
FIELD, 成员变量
METHOD, 成员方法
PARAMETER, 方法参数
CONSTRUCTOR, 构造器
LOCAL_VARIABLE, 局部变量

@Retention:申明注解的生命周期

@Retention可使用的值定义在RetentionPolicy枚举类中,常用值如下:

SOURCE: 注解只作用在源码阶段,生成的字节码文件中不存在
CLASS:  注解作用在源码阶段,字节码文件阶段,运行阶段不存在,默认值.
RUNTIME:注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)
//          类,接口            成员变量
@Target({ElementType.TYPE, ElementType.METHOD})
//注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTest3{...}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值