diff --git a/src/main/java/org/redkale/convert/ObjectEncoder.java b/src/main/java/org/redkale/convert/ObjectEncoder.java index fcd15cd0b..d67552451 100644 --- a/src/main/java/org/redkale/convert/ObjectEncoder.java +++ b/src/main/java/org/redkale/convert/ObjectEncoder.java @@ -343,15 +343,15 @@ public class ObjectEncoder implements Encodeable { if (out.objExtFunc != null) { ConvertField[] extFields = out.objExtFunc.apply(value); if (extFields != null) { - Encodeable anyEncoder = factory.getAnyEncoder(); for (ConvertField en : extFields) { if (en != null) { + Encodeable extEncoder = factory.loadEncoder(en.getType()); maxPosition++; out.writeFieldValue( en.getName(), en.getType(), Math.max(en.getPosition(), maxPosition), - anyEncoder, + extEncoder, en.getValue()); } } diff --git a/src/main/java/org/redkale/convert/Writer.java b/src/main/java/org/redkale/convert/Writer.java index 813c4eda2..8f2b6bf3c 100644 --- a/src/main/java/org/redkale/convert/Writer.java +++ b/src/main/java/org/redkale/convert/Writer.java @@ -151,12 +151,11 @@ public abstract class Writer { * @param fieldName 字段名称 * @param fieldType 字段类型 * @param fieldPos 字段顺序 - * @param anyEncoder Encoder + * @param fieldEncoder Encoder * @param value 写入的字段对象 */ @SuppressWarnings("unchecked") - public void writeFieldValue( - final String fieldName, Type fieldType, int fieldPos, Encodeable anyEncoder, Object value) { + public void writeFieldValue(String fieldName, Type fieldType, int fieldPos, Encodeable fieldEncoder, Object value) { if (value == null) { if (nullable()) { this.writeField(null, fieldName, fieldType, fieldPos); @@ -181,7 +180,7 @@ public abstract class Writer { } } this.writeField(null, fieldName, fieldType, fieldPos); - anyEncoder.convertTo(this, value); + fieldEncoder.convertTo(this, value); this.comma = true; }