in = new DataInputStream(new ByteArrayInputStream(buf));
DataInputStream in = new DataInputStream(new ByteArrayInputStream(buf)); todo = in;
    private ClassFile(byte[] buf) throws IOException    {	in = new DataInputStream(new ByteArrayInputStream(buf));	if(in.readInt() != 0xCAFEBABE)	{	    throw new IOException("Illegal magic");	}	int minor_version = in.readUnsignedShort();	int major_version = in.readUnsignedShort();	int constant_pool_count = in.readUnsignedShort();	constant_pool = new ConstantPoolItem[constant_pool_count];	for(int i = 1; i < constant_pool_count; i++)	{	    switch(in.readUnsignedByte())	    {		case CONSTANT_Class:		    constant_pool[i] = new ClassConstantPoolItem(in.readUnsignedShort());		    break;		case CONSTANT_Fieldref:		case CONSTANT_Methodref:		case CONSTANT_InterfaceMethodref:		    constant_pool[i] = new FMIConstantPoolItem(in.readUnsignedShort(), in.readUnsignedShort());		    break;		case CONSTANT_String:		    constant_pool[i] = new StringConstantPoolItem(in.readUnsignedShort());		    break;		case CONSTANT_Integer:		    constant_pool[i] = new IntegerConstantPoolItem(in.readInt());		    break;		case CONSTANT_Float:		    constant_pool[i] = new FloatConstantPoolItem(in.readFloat());		    break;		case CONSTANT_Long:		    constant_pool[i] = new LongConstantPoolItem(in.readLong());		    i++;		    break;		case CONSTANT_Double:		    constant_pool[i] = new DoubleConstantPoolItem(in.readDouble());		    i++;		    break;		case CONSTANT_NameAndType:		    constant_pool[i] = new NameAndTypeConstantPoolItem(in.readUnsignedShort(), in.readUnsignedShort());		    break;		case CONSTANT_Utf8:		    constant_pool[i] = new Utf8ConstantPoolItem(in.readUTF());		    break;		default:		    throw new IOException("unrecognized constant pool item");	    }	}	raw_access_flags = in.readUnsignedShort();	access_flags = raw_access_flags | Modifier.STATIC;	int this_class = in.readUnsignedShort();	name = this_class == 0 ? null : getClassConstantName(this_class);	int super_class = in.readUnsignedShort();	superClass = (super_class == 0 || Modifier.isInterface(access_flags)) ? null : getClassConstantName(super_class);    }