@Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof GooglePBRequestType)) {
        return super.equals(obj);
      }
      GooglePBRequestType other = (GooglePBRequestType) obj;

      if (Double.doubleToLongBits(getDouble())
          != Double.doubleToLongBits(
              other.getDouble())) return false;
      if (Float.floatToIntBits(getFloat())
          != Float.floatToIntBits(
              other.getFloat())) return false;
      if (getInt32()
          != other.getInt32()) return false;
      if (getInt64()
          != other.getInt64()) return false;
      if (getUint32()
          != other.getUint32()) return false;
      if (getUint64()
          != other.getUint64()) return false;
      if (getSint32()
          != other.getSint32()) return false;
      if (getSint64()
          != other.getSint64()) return false;
      if (getFixed32()
          != other.getFixed32()) return false;
      if (getFixed64()
          != other.getFixed64()) return false;
      if (getSfixed32()
          != other.getSfixed32()) return false;
      if (getSfixed64()
          != other.getSfixed64()) return false;
      if (getBool()
          != other.getBool()) return false;
      if (!getString()
          .equals(other.getString())) return false;
      if (!getBytesType()
          .equals(other.getBytesType())) return false;
      if (hasCard() != other.hasCard()) return false;
      if (hasCard()) {
        if (!getCard()
            .equals(other.getCard())) return false;
      }
      if (!getCardsList()
          .equals(other.getCardsList())) return false;
      if (!internalGetCardsmap().equals(
          other.internalGetCardsmap())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }
<code>map&lt;string, .com.alibaba.fastjson2.dubbo.DriverCard&gt; cardsmap = 18;</code>
core/src/test/java/com/alibaba/fastjson2/dubbo/GoogleProtobufBasic.java