Java注解






前面都是抄的别人的,发点自己的东西
package 注解.反射读取;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(value = ElementType.TYPE)//修饰类
@Retention(value = RetentionPolicy.RUNTIME)
public @interface SxtTable
{
String value();
}
package 注解.反射读取; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //用来说明SXtStudent 里面的属性特性 @Target(value = ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface SxtFiled { String columnName(); String type(); int length(); }
package 注解.反射读取; @SxtTable("tb_table") public class SxtStudent { @SxtFiled(columnName = "id",type="int",length = 10) private int id; //对属性做了说明, @SxtFiled(columnName = "sname",type="varchar",length = 10) private String StudentName; @SxtFiled(columnName = "age",type="int",length = 3) private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getStudentName() { return StudentName; } public void setStudentName(String studentName) { StudentName = studentName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package 注解.反射读取;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
//反射读取ANN
public class DEMO
{
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException
{
Class Clazz= Class.forName("注解.反射读取.SxtStudent");//包含对应类的全部信息 包含注解
// Annotation annot[]=Clazz.getAnnotations();//获取注解
// for(Annotation a:annot)
// {
// System.out.println(a);
// }
//直接获得特定的注解
// SxtTable st= (SxtTable) Clazz.getAnnotation(SxtTable.class);
// System.out.println(st);
//获得对应类的属性的注解
Field f=Clazz.getDeclaredField("StudentName");
System.out.println(f);
SxtFiled sxtf=f.getAnnotation(SxtFiled.class);
System.out.println(sxtf);
System.out.println(sxtf.columnName());
System.out.println(sxtf.length());
System.out.println(sxtf.type());
}
}

浙公网安备 33010602011771号