package com.reouse; import java.lang.annotation.*; import java.lang.reflect.Field; @tablestudent(tablename = "mydatabase") class User{ @Fieldstudent(name = "name", type = "String", length = 10) private String name; @Fieldstudent(name = "age", type = "String", length = 10) private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class text2 { public static void main(String[] ars){ System.out.println("haha"); try { Class c1 = Class.forName("com.reouse.User"); tablestudent tablestudent1 = (tablestudent)c1.getAnnotation(tablestudent.class); String name = tablestudent1.tablename(); System.out.println(name); try { Field field = c1.getDeclaredField("name"); Fieldstudent annotation = field.getAnnotation(Fieldstudent.class); System.out.println(annotation.name()+annotation.type()+annotation.length()); } catch (NoSuchFieldException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } } //类注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface tablestudent{ String tablename() default ""; } //属性注解 @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @interface Fieldstudent{ String name(); String type(); int length(); }
6.java反射调注解
最新推荐文章于 2024-09-02 22:33:56 发布