1 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
我假設(shè)Foo有一個(gè) getter 和 setter Blah?
在這種情況下,我建議使用自定義ElementMatcher實(shí)現(xiàn),例如:
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,找到相應(yīng)的字段并檢查其上是否存在注釋。
添加回答
舉報(bào)