protected final Class<?> defineClass (String name, byte[] b, int off, int len) throws ClassFormatError

Converts an array of bytes into an instance of class Class. Before the Class can be used it must be resolved.

This method assigns a default ProtectionDomain to the newly defined class. The ProtectionDomain is effectively granted the same set of permissions returned when java.security.Policy.getPermissions(java.security.CodeSource) is invoked. The default domain is created on the first invocation of defineClass, and re-used on subsequent invocations.

To assign a specific ProtectionDomain to the class, use the defineClass method that takes a ProtectionDomain as one of its arguments.

Parameters:
name     The expected binary name of the class, or null if not known
b     The bytes that make up the class data. The bytes in positions off through off+len-1 should have the format of a valid class file as defined by The Java™ Virtual Machine Specification.
off     The start offset in b of the class data
len     The length of the class data

Returns:  The Class object that was created from the specified class data.

Exceptions:
ClassFormatError     If the data did not contain a valid class
IndexOutOfBoundsException     If either off or len is negative, or if off+len is greater than b.length.
SecurityException     If an attempt is made to add this class to a package that contains classes that were signed by a different set of certificates than this class (which is unsigned), or if name begins with "java.".

See also:
loadClass(String, boolean), resolveClass(Class), java.security.CodeSource, java.security.SecureClassLoader

Since:  1.1