diff --git a/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java b/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java index 13b410a7e..fa5da81d2 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java @@ -47,15 +47,15 @@ public class ProtobufObjectEncoder extends ObjectEncoder if (subout.objExtFunc() != null) { ConvertField[] extFields = subout.objExtFunc().apply(value); if (extFields != null) { - Encodeable anyEncoder = factory.getAnyEncoder(); for (ConvertField en : extFields) { if (en != null) { + Encodeable extEncoder = factory.loadEncoder(en.getType()); maxPosition++; subout.writeFieldValue( en.getName(), en.getType(), Math.max(en.getPosition(), maxPosition), - anyEncoder, + extEncoder, en.getValue()); } }