loadEncoder

This commit is contained in:
redkale
2024-10-20 14:09:19 +08:00
parent 754c9f0c2b
commit aec47a7a9a

View File

@@ -47,15 +47,15 @@ public class ProtobufObjectEncoder<T> extends ObjectEncoder<ProtobufWriter, T>
if (subout.objExtFunc() != null) { if (subout.objExtFunc() != null) {
ConvertField[] extFields = subout.objExtFunc().apply(value); ConvertField[] extFields = subout.objExtFunc().apply(value);
if (extFields != null) { if (extFields != null) {
Encodeable<ProtobufWriter, ?> anyEncoder = factory.getAnyEncoder();
for (ConvertField en : extFields) { for (ConvertField en : extFields) {
if (en != null) { if (en != null) {
Encodeable<ProtobufWriter, ?> extEncoder = factory.loadEncoder(en.getType());
maxPosition++; maxPosition++;
subout.writeFieldValue( subout.writeFieldValue(
en.getName(), en.getName(),
en.getType(), en.getType(),
Math.max(en.getPosition(), maxPosition), Math.max(en.getPosition(), maxPosition),
anyEncoder, extEncoder,
en.getValue()); en.getValue());
} }
} }