package com.student;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
public class Demo {
public static void main(String[] args) throws NoSuchFieldException, SecurityException {
try {
//获得类的所有注解
Class class1=Class.forName("com.student.SxtStudents");
Annotation[] annotations=class1.getAnnotations();
for (Annotation annotation : annotations) {
System.out.println(annotation);
}
//获得类的指定的注解
SxtTable se=(SxtTable)class1.getAnnotation(SxtTable.class);
System.out.println(se.value());
//获得类属性的注解
Field sxtFild=class1.getDeclaredField("studentname");
SxtFild sxtFild2=sxtFild.getAnnotation(SxtFild.class);
System.out.println(sxtFild2.columnName()+"-----"+sxtFild2.type()+"----"+sxtFild2.lenth());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
注解信息
package com.student;
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(RetentionPolicy.RUNTIME)
public @interface SxtTable {
String value();
}
package com.student;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(value={ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface SxtFild {
String columnName();
String type();
int lenth();
}
对student做注解
package com.student;
@SxtTable(“tb_student”)
public class SxtStudents {
@SxtFild(columnName="id",type="int",lenth=10)
private int id;
@SxtFild(columnName="studentname",type="varchar",lenth=10)
private String studentname;
@SxtFild(columnName="age",type="int",lenth=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) {
this.studentname = studentname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}