修复ConvertFacotry.register方法中column参数没有对应field时会导致method的ignore失效的bug
This commit is contained in:
@@ -433,25 +433,32 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
|||||||
|
|
||||||
public final boolean register(final Class type, String column, ConvertColumnEntry entry) {
|
public final boolean register(final Class type, String column, ConvertColumnEntry entry) {
|
||||||
if (type == null || column == null || entry == null) return false;
|
if (type == null || column == null || entry == null) return false;
|
||||||
|
Field field = null;
|
||||||
try {
|
try {
|
||||||
final Field field = type.getDeclaredField(column);
|
field = type.getDeclaredField(column);
|
||||||
String get = "get";
|
|
||||||
if (field.getType() == boolean.class || field.getType() == Boolean.class) get = "is";
|
|
||||||
char[] cols = column.toCharArray();
|
|
||||||
cols[0] = Character.toUpperCase(cols[0]);
|
|
||||||
String col2 = new String(cols);
|
|
||||||
try {
|
|
||||||
register(type.getMethod(get + col2), entry);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
register(type.getMethod("set" + col2, field.getType()), entry);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
}
|
|
||||||
return register(field, entry);
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
String get = "get";
|
||||||
|
if (field != null && (field.getType() == boolean.class || field.getType() == Boolean.class)) get = "is";
|
||||||
|
char[] cols = column.toCharArray();
|
||||||
|
cols[0] = Character.toUpperCase(cols[0]);
|
||||||
|
final String bigColumn = new String(cols);
|
||||||
|
try {
|
||||||
|
register(type.getMethod(get + bigColumn), entry);
|
||||||
|
} catch (NoSuchMethodException mex) {
|
||||||
|
if (get.length() >= 3) { //get
|
||||||
|
try {
|
||||||
|
register(type.getMethod("is" + bigColumn), entry);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
register(type.getMethod("set" + bigColumn, field.getType()), entry);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
}
|
||||||
|
return field == null ? true : register(field, entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final <E> boolean register(final AccessibleObject field, final ConvertColumnEntry entry) {
|
public final <E> boolean register(final AccessibleObject field, final ConvertColumnEntry entry) {
|
||||||
|
|||||||
Reference in New Issue
Block a user