larksuite-oapi/src/main/java/com/larksuite/oapi/okio1_17/ByteString.java
public ByteString substring(int beginIndex, int endIndex) {
    if (beginIndex < 0) throw new IllegalArgumentException("beginIndex < 0");
    if (endIndex > data.length) {
      throw new IllegalArgumentException("endIndex > length(" + data.length + ")");
    }

    int subLen = endIndex - beginIndex;
    if (subLen < 0) throw new IllegalArgumentException("endIndex < beginIndex");

    if ((beginIndex == 0) && (endIndex == data.length)) {
      return this;
    }

    byte[] copy = new byte[subLen];
    System.arraycopy(data, beginIndex, copy, 0, subLen);
    return new ByteString(copy);
  }
/**
   * Returns a byte string that is a substring of this byte string, beginning at the specified
   * {@code beginIndex} and ends at the specified {@code endIndex}. Returns this byte string if
   * {@code beginIndex} is 0 and {@code endIndex} is the length of this byte string.
   */
Returns a byte string that is a substring of this byte string, beginning at the specified
beginIndex and ends at the specified  endIndex. Returns this byte string if
beginIndex is 0 and  endIndex is the length of this byte string.
Returns a byte string that is a substring of this byte string beginning at the specified beginIndex and ends at the specified endIndex . Returns this byte string if beginIndex is 0 and endIndex is the length of this byte string .
public ByteString substring(int beginIndex, int endIndex) {
    if (beginIndex < 0) throw new IllegalArgumentException("beginIndex < 0");
    if (endIndex > data.length) {
      throw new IllegalArgumentException("endIndex > length(" + data.length + ")");
    }
    int subLen = endIndex - beginIndex;
    if (subLen < 0) throw new IllegalArgumentException("endIndex < beginIndex");
    if ((beginIndex == 0) && (endIndex == data.length)) {
      return this;
    }
    byte[] copy = new byte[subLen];
    System.arraycopy(data, beginIndex, copy, 0, subLen);
    return new ByteString(copy);
  }
public ByteString substring ( int beginIndex , int endIndex ) { if ( beginIndex < 0 ) throw new IllegalArgumentException ( "beginIndex < 0" ) ; if ( endIndex > data . length ) { throw new IllegalArgumentException ( "endIndex > length(" + data . length + ")" ) ; } int subLen = endIndex - beginIndex ; if ( subLen < 0 ) throw new IllegalArgumentException ( "endIndex < beginIndex" ) ; if ( ( beginIndex == 0 ) && ( endIndex == data . length ) ) { return this ; } byte [ ] copy = new byte [ subLen ] ; System . arraycopy ( data , beginIndex , copy , 0 , subLen ) ; return new ByteString ( copy ) ; }
Returns a byte string that is a substring of this byte string, beginning at the specified
 {@code beginIndex} and ends at the specified {@code endIndex}.
Returns a byte string that is a substring of this byte string beginning at the specified { @code beginIndex } and ends at the specified { @code endIndex } .