# Class ClassDefinition

java.lang.Object
java.lang.instrument.ClassDefinition

public final class ClassDefinition extends Object
This class serves as a parameter block to the `Instrumentation.redefineClasses` method. Serves to bind the `Class` that needs redefining together with the new class file bytes.

Since:
  1.5
See Also:
  - `Instrumentation.redefineClasses(ClassDefinition...)`

## Constructor Summary

Constructors
Constructor
Description
`ClassDefinition(Class<?> theClass, byte[] theClassFile)`
Creates a new `ClassDefinition` binding using the supplied class and class file bytes.

## Method Summary

Modifier and Type
Method
Description
`Class<?>`
`getDefinitionClass()`
Returns the class.
`byte[]`
`getDefinitionClassFile()`
Returns the array of bytes that contains the new class file.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ClassDefinition

public ClassDefinition(Class<?> theClass, byte[] theClassFile)
Creates a new `ClassDefinition` binding using the supplied class and class file bytes. Does not copy the supplied buffer, just captures a reference to it.

Parameters:
  `theClass` - the `Class` that needs redefining
  `theClassFile` - the new class file bytes
Throws:
  `NullPointerException` - if the supplied class or array is `null`.

## Method Details

### getDefinitionClass

public Class<?> getDefinitionClass()
Returns the class.

Returns:
  the `Class` object referred to.

### getDefinitionClassFile

public byte[] getDefinitionClassFile()
Returns the array of bytes that contains the new class file.

Returns:
  the class file bytes.