package 反射.pojo;
import java.lang.annotation.*;
import java.lang.reflect.Field;
public class StudentMain{
public static void main(String[] args) throws Exception {
Class<?> c1 = Class.forName("反射.pojo.Student");
Annotation[] annotations = c1.getAnnotations();
for (Annotation annotation : annotations) {
System.out.println(annotation);
}
//获取注解value的值
MyAnnotation1 myAnnotation1 = (MyAnnotation1) c1.getAnnotation(MyAnnotation1.class);
System.out.println(myAnnotation1.value());
//获得类指定的注解
Field id = c1.getDeclaredField("id");
FieldChen annotation = id.getAnnotation(FieldChen.class);
System.out.println(annotation.columnName());
System.out.println(annotation.type());
System.out.println(annotation.length());
}
}
@MyAnnotation1("db_student")
class Student {
@FieldChen(columnName = "db_id",type = "int",length = 10)
private int id;
@FieldChen(columnName = "db_name",type = "string",length = 10)
private String username;
@FieldChen(columnName = "db_pass",type = "string",length = 3)
private String password;
public Student() {
}
public Student(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation1{
String value();
}
//属性的注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@interface FieldChen{
String columnName();
String type();
int length();
}
javaSE注解和反射之获取注解信息
最新推荐文章于 2023-04-18 21:22:57 发布