在没有 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();
}
}
}
我需要检查 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();
}
}
}