// tự định nghĩa 1 annotation
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@interface Max {
double value() default 10000;
}
public class Student {
private String fullname=null;
@Max(value = 123)
private int ID=0;
}
public static void main(String[] args) throws NoSuchFieldException {
Field field = Student.class.getDeclaredField("ID");
Max annotations = field.getAnnotation(Max.class);
System.out.println(annotations.value()); // output: 123
}
Chào các a/c. Em đang làm 1 cái Validator. Hiện tại ý tưởng của e là tự build các annotation như min,max, notnull, … sau đó sẽ lấy giá trị của annotation và so sánh nó với giá trị của field (vd: ID như trong ví dụ) hiện tại.
Em tìm ra được cách lấy ra giá trị của annotation nhưng giờ e muốn viết 1 hàm tổng quát kiểu:
void validate(Class studentType, Object studentObj, String field )
{
// Lấy ra giá trị của field trong studentObj
// Lấy ra giá trị của tất cả annotation của field trong class studentType
// Tùy thuộc vào loại annotation mà gọi hàm checkValid để kiểm tra (giá trị của annotation và giá trị của field, nếu invalid thì thông báo)
}
Mn có thể gợi ý cho e cách làm k ạ! E cảm ơn!