class ClassReader {

  public String[] getInterfaces() {
    // interfaces_count is after the access_flags, this_class and super_class fields (2 bytes each).
    int currentOffset = header + 6;
    int interfacesCount = readUnsignedShort(currentOffset);
    String[] interfaces = new String[interfacesCount];
    if (interfacesCount > 0) {
      char[] charBuffer = new char[maxStringLength];
      for (int i = 0; i < interfacesCount; ++i) {
        currentOffset += 2;
        interfaces[i] = readClass(currentOffset, charBuffer);
      }
    }
    return interfaces;
  }

  public  ClassReader(final byte[] classFile);
  public  ClassReader(
      final byte[] classFileBuffer,
      final int classFileOffset,
      final int classFileLength);
    ClassReader(
      final byte[] classFileBuffer, final int classFileOffset, final boolean checkClassVersion);
  public  ClassReader(final InputStream inputStream);
  public  ClassReader(final String className);

}