Reproduce.create方法中BiPredicate参数的第一个泛型改为AccessibleObject

This commit is contained in:
Redkale
2019-01-10 18:43:45 +08:00
parent 5c7dd7d782
commit bc64666700

View File

@@ -41,12 +41,12 @@ public interface Reproduce<D, S> extends BiFunction<D, S, D> {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <D, S> Reproduce<D, S> create(final Class<D> destClass, final Class<S> srcClass, final BiPredicate<Class<S>, String> srcColumnPredicate) { public static <D, S> Reproduce<D, S> create(final Class<D> destClass, final Class<S> srcClass, final BiPredicate<java.lang.reflect.AccessibleObject, String> srcColumnPredicate) {
return create(destClass, srcClass, srcColumnPredicate, (Map<String, String>) null); return create(destClass, srcClass, srcColumnPredicate, (Map<String, String>) null);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <D, S> Reproduce<D, S> create(final Class<D> destClass, final Class<S> srcClass, final BiPredicate<Class<S>, String> srcColumnPredicate, final Map<String, String> names) { public static <D, S> Reproduce<D, S> create(final Class<D> destClass, final Class<S> srcClass, final BiPredicate<java.lang.reflect.AccessibleObject, String> srcColumnPredicate, final Map<String, String> names) {
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
final String supDynName = Reproduce.class.getName().replace('.', '/'); final String supDynName = Reproduce.class.getName().replace('.', '/');
final String destClassName = destClass.getName().replace('.', '/'); final String destClassName = destClass.getName().replace('.', '/');
@@ -89,7 +89,7 @@ public interface Reproduce<D, S> extends BiFunction<D, S, D> {
if (Modifier.isFinal(field.getModifiers())) continue; if (Modifier.isFinal(field.getModifiers())) continue;
if (!Modifier.isPublic(field.getModifiers())) continue; if (!Modifier.isPublic(field.getModifiers())) continue;
final String sfname = field.getName(); final String sfname = field.getName();
if (srcColumnPredicate != null && !srcColumnPredicate.test(srcClass, sfname)) continue; if (srcColumnPredicate != null && !srcColumnPredicate.test(field, sfname)) continue;
final String dfname = names == null ? sfname : names.getOrDefault(sfname, sfname); final String dfname = names == null ? sfname : names.getOrDefault(sfname, sfname);
java.lang.reflect.Method setter = null; java.lang.reflect.Method setter = null;
@@ -128,7 +128,7 @@ public interface Reproduce<D, S> extends BiFunction<D, S, D> {
cs[0] = Character.toLowerCase(cs[0]); cs[0] = Character.toLowerCase(cs[0]);
sfname = new String(cs); sfname = new String(cs);
} }
if (srcColumnPredicate != null && !srcColumnPredicate.test(srcClass, sfname)) continue; if (srcColumnPredicate != null && !srcColumnPredicate.test(getter, sfname)) continue;
final String dfname = names == null ? sfname : names.getOrDefault(sfname, sfname); final String dfname = names == null ? sfname : names.getOrDefault(sfname, sfname);
java.lang.reflect.Method setter = null; java.lang.reflect.Method setter = null;