@java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof com.alipay.sofa.jraft.rpc.RpcRequests.ReadIndexRequest)) {
                return super.equals(obj);
            }
            com.alipay.sofa.jraft.rpc.RpcRequests.ReadIndexRequest other = (com.alipay.sofa.jraft.rpc.RpcRequests.ReadIndexRequest) obj;

            boolean result = true;
            result = result && (hasGroupId() == other.hasGroupId());
            if (hasGroupId()) {
                result = result && getGroupId().equals(other.getGroupId());
            }
            result = result && (hasServerId() == other.hasServerId());
            if (hasServerId()) {
                result = result && getServerId().equals(other.getServerId());
            }
            result = result && getEntriesList().equals(other.getEntriesList());
            result = result && (hasPeerId() == other.hasPeerId());
            if (hasPeerId()) {
                result = result && getPeerId().equals(other.getPeerId());
            }
            result = result && (hasReadOnlyOptions() == other.hasReadOnlyOptions());
            if (hasReadOnlyOptions()) {
                result = result && readOnlyOptions_ == other.readOnlyOptions_;
            }
            result = result && unknownFields.equals(other.unknownFields);
            return result;
        }
<code>optional .jraft.ReadOnlyType readOnlyOptions = 5;</code>
jraft-core/src/main/java/com/alipay/sofa/jraft/rpc/RpcRequests.java