造价统计报表在哪个网站上做,淮南网名,中英文企业网站系统,百度搜索推广的五大优势前言#xff1a; Java注解是一种元数据机制#xff0c;可用于方法#xff0c;字段#xff0c;类等程序上以提供关于这些元素的额外信息。 以下内容是我自己写的一个小测试的demo,参考该文章进行编写#xff1a;https://blog.csdn.net/m0_71621983/article/details/1318164…前言 Java注解是一种元数据机制可用于方法字段类等程序上以提供关于这些元素的额外信息。 以下内容是我自己写的一个小测试的demo,参考该文章进行编写https://blog.csdn.net/m0_71621983/article/details/131816443
1.自定义注解 注在该注解中定义了num属性设置默认值引用该注解可以对num属性进行额外赋值 属性类型可以是任意类型字符串枚举数值等等…
java.lang.annotation提供了五种元注解 Documented – 注解是否将包含在JavaDoc中 Retention – 什么时候使用该注解 Target – 注解用于什么地方 Inherited – 是否允许子类继承该注解 Repeatable - 是否可重复注解jdk1.8引入
类上引用了Target注解表示这个注解应用到哪个元素上包含以下范围值
public enum ElementType {/** 类接口包括注解类型或枚举的声明 */TYPE,/** 属性的声明 */FIELD,/** 方法的声明 */METHOD,/** 方法形式参数声明 */PARAMETER,/** 构造方法的声明 */CONSTRUCTOR,/** 局部变量声明 */LOCAL_VARIABLE,/** 注解类型声明 */ANNOTATION_TYPE,/** 包的声明 */PACKAGE,/** 类型参数声明jdk1.8加入 */TYPE_PARAMETER,/** 任意类型jdk1.8加入 */TYPE_USE
}
Retention
public enum RetentionPolicy {/** 注解将被编译器忽略掉 */SOURCE,/** 注解将被编译器记录在class文件中但在运行时不会被虚拟机保留这是一个默认的行为 */CLASS,/** 注解将被编译器记录在class文件中而且在运行时会被虚拟机保留因此它们能通过反射被读取到 */RUNTIME
}2.创建一个实体类定义该注解 以上实体类的属性引用该自定义注解设置注解的额外值
3.对注解的值进行校验处理 输出结果
name名字-输出.num()----------------------
name名字-输出.bean----------------------codeTab-输出.num()----------------------
new_codeTab-输出.bean--------------------输出值1直接输出注解的num值 输出值2输出field的属性值该field在此代码中进行了set()方法赋值操作如果没有set()则输出null bean的对象属性值[name“name名字”numbernulltab“new_codeTab”] 注如果代码中没有使用field.set()进行赋值则bean属性都为null Field类具体方法的一些用法可以参考这篇文章https://blog.csdn.net/yyuggjggg/article/details/126021525
在要使用该注解的地方调用该映射方法传入要映射的bean对象