code: protected String __string(int offset) {
      offset += bb.getInt(offset);
      int length = bb.getInt(offset);
      return utf8.decodeUtf8(bb, offset + SIZEOF_INT, length);
    }
docs: Create a Java `String` from UTF-8 data stored inside the FlatBuffer.
  
  This allocates a new string and converts to wide chars upon each access,
  which is not very efficient. Instead, each FlatBuffer string also comes with an
  accessor based on __vector_as_bytebuffer below, which is much more efficient,
  assuming your Java program can handle UTF-8 data directly.
  
  @param offset An `int` index into the Table's ByteBuffer.
  @return Returns a `String` from the data stored inside the FlatBuffer at `offset`.