1 回答
TA贡献2012条经验 获得超12个赞
我假设Foo有一个 getter 和 setter Blah?
在这种情况下,我建议使用自定义ElementMatcher实现,例如:
class FieldMatcher implements ElementMatcher<MethodDescription> {
@Override
public boolean matches(MethodDescription target) {
String fieldName;
if (target.getName().startsWith("set") || target.getName().startsWith("get")) {
fieldName = target.substring(3, 4).toLowerCase() + target.substring(4);
} else if (target.getName().startsWith("is")) {
fieldName = target.substring(2, 3).toLowerCase() + target.substring(3);
} else {
return false;
}
target.getDeclaringType()
.getDeclaredFields()
.filter(named)
.getOnly()
.getDeclaredAnnotations()
.isAnnotationPresent(Sensitive.class);
}
}
该匹配器检查方法是否是 getter 或 setter,找到相应的字段并检查其上是否存在注释。
添加回答
举报