code: @GwtIncompatible // doesn't work
    public static int fromByteArray(byte[] bytes) {
      checkArgument(bytes.length >= BYTES, "array too small: %s < %s", bytes.length, BYTES);
      return fromBytes(bytes[0], bytes[1], bytes[2], bytes[3]);
    }
docs: Returns the {@code int} value whose big-endian representation is stored in the first 4 bytes of
  {@code bytes}; equivalent to {@code ByteBuffer.wrap(bytes).getInt()}. For example, the input
  byte array {@code {0x12, 0x13, 0x14, 0x15, 0x33}} would yield the {@code int} value
  {@code 0x12131415}.
  
  <p>Arguably, it's preferable to use {@link java.nio.ByteBuffer}; that library exposes much more
  flexibility at little cost in readability.
  
  @throws IllegalArgumentException if {@code bytes} has fewer than 4 elements