From 8ad919f952112f18b91c56d203d9d8cabe8f0558 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Wed, 6 Mar 2019 09:31:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86Convert=E5=9C=A8?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E5=AD=90=E7=B1=BB=E6=9F=90=E4=BA=9B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=97=B6=E5=9B=A0=E4=B8=BAMethod=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=BF=BD=E7=95=A5=E7=88=B6=E7=B1=BB=E7=9A=84?= =?UTF-8?q?getter=E6=96=B9=E6=B3=95=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/convert/ConvertFactory.java | 9 ++------- src/org/redkale/convert/ObjectDecoder.java | 4 ++-- src/org/redkale/convert/ObjectEncoder.java | 14 +++++++------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index 889ccf9a7..79ced4f2c 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -220,15 +220,10 @@ public abstract class ConvertFactory { return false; } - public ConvertColumnEntry findRef(AccessibleObject element) { + public ConvertColumnEntry findRef(Class clazz, AccessibleObject element) { if (element == null) return null; ConvertColumnEntry en = this.columnEntrys.get(element); - Set onlyColumns = null; - if (element instanceof Method) { - onlyColumns = ignoreAlls.get(((Method) element).getDeclaringClass()); - } else if (element instanceof Field) { - onlyColumns = ignoreAlls.get(((Field) element).getDeclaringClass()); - } + Set onlyColumns = ignoreAlls.get(clazz); if (en != null && onlyColumns == null) return en; final ConvertType ct = this.getConvertType(); ConvertColumn[] ccs = element.getAnnotationsByType(ConvertColumn.class); diff --git a/src/org/redkale/convert/ObjectDecoder.java b/src/org/redkale/convert/ObjectDecoder.java index d6d08210a..7f4f03bb3 100644 --- a/src/org/redkale/convert/ObjectDecoder.java +++ b/src/org/redkale/convert/ObjectDecoder.java @@ -94,7 +94,7 @@ public class ObjectDecoder implements Decodeable { for (final Field field : clazz.getFields()) { if (Modifier.isStatic(field.getModifiers())) continue; if (factory.isConvertDisabled(field)) continue; - ref = factory.findRef(field); + ref = factory.findRef(clazz, field); if (ref != null && ref.ignore()) continue; Decodeable fieldCoder = factory.findFieldCoder(clazz, field.getName()); if (fieldCoder == null) { @@ -123,7 +123,7 @@ public class ObjectDecoder implements Decodeable { continue; } } - ref = factory.findRef(method); + ref = factory.findRef(clazz, method); if (ref != null && ref.ignore()) continue; Decodeable fieldCoder = factory.findFieldCoder(clazz, ConvertFactory.readGetSetFieldName(method)); diff --git a/src/org/redkale/convert/ObjectEncoder.java b/src/org/redkale/convert/ObjectEncoder.java index acb5fabf7..6a180e69b 100644 --- a/src/org/redkale/convert/ObjectEncoder.java +++ b/src/org/redkale/convert/ObjectEncoder.java @@ -75,7 +75,7 @@ public class ObjectEncoder implements Encodeable { for (final Field field : clazz.getFields()) { if (Modifier.isStatic(field.getModifiers())) continue; if (factory.isConvertDisabled(field)) continue; - ref = factory.findRef(field); + ref = factory.findRef(clazz, field); if (ref != null && ref.ignore()) continue; Encodeable fieldCoder = factory.findFieldCoder(clazz, field.getName()); if (fieldCoder == null) { @@ -104,7 +104,7 @@ public class ObjectEncoder implements Encodeable { continue; } } - ref = factory.findRef(method); + ref = factory.findRef(clazz, method); if (ref != null && ref.ignore()) continue; Encodeable fieldCoder = factory.findFieldCoder(clazz, ConvertFactory.readGetSetFieldName(method)); if (fieldCoder == null) { @@ -253,24 +253,24 @@ public class ObjectEncoder implements Encodeable { static Attribute createAttribute(final ConvertFactory factory, Class clazz, final Field field, final Method getter, final Method setter) { String fieldalias; if (field != null) { // public field - ConvertColumnEntry ref = factory.findRef(field); + ConvertColumnEntry ref = factory.findRef(clazz, field); fieldalias = ref == null || ref.name().isEmpty() ? field.getName() : ref.name(); } else if (getter != null) { - ConvertColumnEntry ref = factory.findRef(getter); + ConvertColumnEntry ref = factory.findRef(clazz, getter); String mfieldname = ConvertFactory.readGetSetFieldName(getter); if (ref == null) { try { - ref = factory.findRef(clazz.getDeclaredField(mfieldname)); + ref = factory.findRef(clazz, clazz.getDeclaredField(mfieldname)); } catch (Exception e) { } } fieldalias = ref == null || ref.name().isEmpty() ? mfieldname : ref.name(); } else { // setter != null - ConvertColumnEntry ref = factory.findRef(setter); + ConvertColumnEntry ref = factory.findRef(clazz, setter); String mfieldname = ConvertFactory.readGetSetFieldName(setter); if (ref == null) { try { - ref = factory.findRef(clazz.getDeclaredField(mfieldname)); + ref = factory.findRef(clazz, clazz.getDeclaredField(mfieldname)); } catch (Exception e) { } }