}
fields.add(ef);
fieldMap.put(ef.getName(), ef);
}
for (Method m : mirror.getMethods()) {
final JsonField jf = m.getAnnotation(JsonField.class);
// 忽略方法
if (null == jf || jf.ignore())
continue;
// 如果有,尝试作新的 Entity
final Method method = m;
Callback<Method> whenError = new Callback<Method>() {
// 给定方法即不是 getter 也不是 setter,靠!玩我!
public void invoke(Method m) {
throw Lang.makeThrow(JsonException.class,
"JsonField '%s' should be getter/setter pair!",
m);
}
};
Callback3<String, Method, Method> whenOk = new Callback3<String, Method, Method>() {
public void invoke(String name, Method getter, Method setter) {
// 防止错误
if (null == getter || null == setter || Strings.isBlank(name)) {
throw Lang.makeThrow(JsonException.class,
"JsonField '%s' should be getter/setter pair!",
method);
}
// 加入字段表
JsonEntityField ef = JsonEntityField.eval(Strings.sBlank(jf.value(), name),
getter,
setter);
fields.add(ef);
fieldMap.put(ef.getName(), ef);
}