Creator的getConstructorField方法增加对子类字段的支持

This commit is contained in:
Redkale
2018-01-24 10:50:08 +08:00
parent 902fd70eb4
commit 355441e795

View File

@@ -145,6 +145,18 @@ public interface Creator<T> {
try {
Field field = clazz.getDeclaredField(names[i]);
se[i] = new SimpleEntry<>(field.getName(), field.getType());
} catch (NoSuchFieldException fe) {
Class cz = clazz;
Field field = null;
while ((cz = cz.getSuperclass()) != Object.class) {
try {
field = cz.getDeclaredField(names[i]);
break;
} catch (NoSuchFieldException nsfe) {
}
}
if (field == null) return null;
se[i] = new SimpleEntry<>(field.getName(), field.getType());
} catch (Exception e) {
return null;
}