在没有 isAnnotationPresent 的情况下检查来自 Field 的注释

Check an annotation from a Field without isAnnotationPresent

我需要检查 Field 处是否存在注释,但我无法使用 isAnnotationPresent 来检查它。

public void foo(Class<?> clazz) {
    Field[] fieldReflection = clazz.getDeclaredFields();

    for (Field fieldReflect : fieldReflection){
        if (fieldReflect.isAnnotationPresent(FieldSize.class){
            //do something
        } else {
            throw new Exception();
        }
    }
}

这就是我今天的做法,还有另一种方法可以检查 Field 是否有注释?

我刚找到怎么做..

除了使用isAnnotationPresent,我还可以这样检查:

FieldSize annotation = fieldReflect.getAnnotation(FieldSize.class);
if (annotation != null) {

所以最终的代码是这样的:

public void foo(Class<?> clazz) {
    Field[] fieldReflection = clazz.getDeclaredFields();

    for (Field fieldReflect : fieldReflection){
        FieldSize annotation = fieldReflect.getAnnotation(FieldSize.class);
        if (annotation != null){
            //do something
        } else {
            throw new Exception();
        }
    }
}