[进阶]注解、自定义注解、元注解

本文介绍了Java中的注解,包括其作为代码标记的作用,如何自定义注解,以及注解的特殊属性如`value`。此外,还讲解了元注解`@Target`和`@Retention`的用法,它们分别用于指定注解的使用位置和保留时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注解:

  • 就是Java代码里的特殊标记,比如:@Override、@Test等,作用是:让其他程序根据注解信息来决定怎么执行该程序。
  • 注意:注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置处。

 自定义注解

  • 就是自己定义注解
  • 格式:

代码演示如下:

/**
 * 自定义注解
 */
public @interface MyTest1 {
    String aaa();
    boolean bbb() default true;
    String[] ccc();
}

测试类

@MyTest1(aaa = "牛魔王",ccc = {"大角牛","大青蛙"})
public class AnnotionTest1 {
    @MyTest1(aaa = "铁扇公主",bbb=false,ccc ={"python","java","前端"})
    public void test1(){}
}

特殊属性名:value

  • 如果注解中只有一个value属性,使用注解时,value名称可以不写!!

代码演示如下:

@MyTest2("孙悟空")
public class AnnotionTest1 {
    @MyTest1(aaa = "铁扇公主",bbb=false,ccc ={"python","java","前端"})
    public void test1(){}
}
public @interface MyTest2 {
    String value(); // 特殊属性
}

注解的原理

  • 注解本质是一个接口,Java中所有注解都是继承了Annotation接口的。
  • @注解(…):其实就是一个实现类对象,实现了该注解以及Annotation接口。

 

元注解

  • 指的是:修饰注解的注解

 @Target  代码演示如下:

@Target({ElementType.TYPE,ElementType.METHOD}) // 当前被修饰的注解只能用于类和成员方法
public @interface MyTest3 {
}
@MyTest3
public class AnnotationTest2 {
    @MyTest3
    public void test() {
    }
}

@Retention代码演示如下:

@Retention(RetentionPolicy.RUNTIME)//控制下面的注解一直保留到运行时
@Target({ElementType.TYPE,ElementType.METHOD}) // 当前被修饰的注解只能用于类和成员方法
public @interface MyTest3 {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值