反射-操作注解
反射操作注解
getAnnotations
getAnnotation
package 反射;//练习反射操作注解 import java.lang.annotation.*; import java.lang.reflect.Field; public class Mai2n { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException{ Class c1=Class.forName("反射.Student1");//通过反射获得class对象 //通过反射获得注解 Annotation[] annotations=c1.getAnnotations();//getAnnotations:获取全部注解 for(Annotation annotation:annotations){ System.out.println(annotation); } //获得注解vlaue的值 TableCH tableCH=(TableCH)c1.getAnnotation(TableCH.class);//获得指定注解 String value=tableCH.value(); System.out.println(value); //获得指定类注解 Field f=c1.getDeclaredField("name");//获得name参数的注解,结果是这个就正确: @FieldCH(columnName="db_name",type="varchar",length=3),db_name,varchar,3 FieldCH annotation=f.getAnnotation(FieldCH.class); //打印注解的全部字段 System.out.println(annotation.columnName()); System.out.println(annotation.type()); System.out.println(annotation.length()); } } //模拟数据库表 @TableCH("db_Student1") class Student1{ @FieldCH(columnName="db_id",type="int",length=10)//假设数据库存在一个db_id的表,那就让当前的id属性获取一个int类型的值,长度,不超过10 private int id; @FieldCH(columnName="db_age",type="int",length=10) private int age; @FieldCH(columnName="db_name",type="varchar",length=3) private String name; public Student1(){ } public Student1(int id,int age ,String name){ this.id=id; this.age=age; this.name=name; } public int getId(){ return id; } public void setId(int id){ this.id=id; } public int getAge(){ return age; } public void setAge(int age){ this.age=age; } public String getName(){ return name; } public void setName(){ this.name=name; } public String toString(){ return "User{"+ "id="+id+",age="+age+",name="+name+"}"; } } //类名的注解 @Target(ElementType.TYPE)//获取级别 @Retention(RetentionPolicy.RUNTIME) @interface TableCH{ String value(); } //属性的注解 @Target(ElementType.FIELD)//获取级别 @Retention(RetentionPolicy.RUNTIME)//作用域 @interface FieldCH{ String columnName(); String type(); int length(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异