@Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (Double.doubleToRawLongBits(double_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, double_);
      }
      if (Float.floatToRawIntBits(float_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, float_);
      }
      if (int32_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, int32_);
      }
      if (int64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, int64_);
      }
      if (uint32_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, uint32_);
      }
      if (uint64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, uint64_);
      }
      if (sint32_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(7, sint32_);
      }
      if (sint64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt64Size(8, sint64_);
      }
      if (fixed32_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(9, fixed32_);
      }
      if (fixed64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(10, fixed64_);
      }
      if (sfixed32_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(11, sfixed32_);
      }
      if (sfixed64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(12, sfixed64_);
      }
      if (bool_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, bool_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(string_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, string_);
      }
      if (!bytesType_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(15, bytesType_);
      }
      if (card_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getCard());
      }
      for (int i = 0; i < cards_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, cards_.get(i));
      }
      for (java.util.Map.Entry<String, DriverCard> entry
           : internalGetCardsmap().getMap().entrySet()) {
        com.google.protobuf.MapEntry<String, DriverCard>
        cardsmap__ = CardsmapDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(18, cardsmap__);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }
<code>map&lt;string, .com.alibaba.fastjson2.dubbo.DriverCard&gt; cardsmap = 18;</code>
core/src/test/java/com/alibaba/fastjson2/dubbo/GoogleProtobufBasic.java