自定义注解:
格式:
元注释
public @interface 注解名称{}
本质:注解本质上就是一个接口,该接口默认继承Annotation接口
public @interface MyAnno extends java.lang.annotation.Annotation{}
属性:接口中可以定义的成员方法
在程序使用(解析)注解
程序代码:
@SuppressWarnings("all") public class AnnoDemo2 { @Override public String toString(){ return super.toString(); } @Deprecated public void show1(){ } @MyAnno public void show2(){ } public void demo(){ show1(); Date date = new Date(); } }
public @interface MyAnno { // public abstract String show(); }
自定义注解_属性定义
属性:接口中的抽象方法
要求:
属性的返回值类型有下列取值
基本数据类型
String
枚举
注解
以上类型的数组
定义了属性,在使用时需要给属性赋值
如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。
数组赋值时,值使用0包表。如果数组中只有一个值,则0省略
public @interface MyAnno { int value(); Person per(); MyAnno2 anno2(); String[] str(); // String name() default "张三"; }
public @interface MyAnno2 { }
public enum Person { P1,P2; }
@MyAnno(value = 12,per = Person.P1,anno2 = @MyAnno2,str = {"aaa","bbb"}) public class Worker { }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)