# Interface IJavaClassType

All Superinterfaces:
  `org.eclipse.core.runtime.IAdaptable, org.eclipse.debug.core.model.IDebugElement, IJavaReferenceType, IJavaType`

public interface IJavaClassType extends IJavaReferenceType
The class of an object on a Java debug target.

Since:
  2.0
See Also:
  - `IJavaValue`
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`IJavaInterfaceType[]`
`getAllInterfaces()`
Returns the interface objects associated with all interfaces this class implements, directly or indirectly.
`IJavaInterfaceType[]`
`getInterfaces()`
Returns the interface objects associated with the interfaces this class directly implements.
`IJavaClassType`
`getSuperclass()`
Returns the superclass of this class type, or `null` if no such class exists.
`boolean`
`isEnum()`
Returns whether this type is declared as a type safe enumeration.
`IJavaObject`
`newInstance(String signature, IJavaValue[] args, IJavaThread thread)`
Returns a new instance of this class by invoking the constructor with the given signature and arguments in the specified thread.
`IJavaValue`
`sendMessage(String selector, String signature, IJavaValue[] args, IJavaThread thread)`
Returns the result of sending the specified message to this class with the given arguments in the specified thread (invokes a static method on this type).

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.debug.core.model.IDebugElement

`getDebugTarget, getLaunch, getModelIdentifier`

### Methods inherited from interface IJavaReferenceType

`getAllFieldNames, getAvailableStrata, getClassLoaderObject, getClassObject, getDeclaredFieldNames, getDefaultStratum, getField, getGenericSignature, getInstanceCount, getInstances, getSourceName, getSourceNames, getSourcePaths`

### Methods inherited from interface IJavaType

`getName, getSignature`

## Method Details

### newInstance

IJavaObject newInstance(String signature, IJavaValue[] args, IJavaThread thread) throws org.eclipse.debug.core.DebugException
Returns a new instance of this class by invoking the constructor with the given signature and arguments in the specified thread. The given thread is resumed to perform this method invocation and suspends in its original location when this method invocation is complete. This method does not return until the method invocation is complete. Resuming the specified thread can result in breakpoints being hit, infinite loops, and deadlock.

Parameters:
  `signature` - the JNI style signature of the method to be invoked
  `args` - the arguments of the constructor, which can be `null` or empty if there are none
  `thread` - the thread in which to invoke the constructor
Returns:
  the result of invoking the constructor
Throws:
  `org.eclipse.debug.core.DebugException` - if this method fails. Reasons include:
  - Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  - This type does not implement the specified constructor
  - An exception occurs while invoking the specified constructor
  - The given thread is already performing a message send, (status code `IJavaThread.ERR_NESTED_METHOD_INVOCATION`)
  - The given thread is not currently suspended (status code `IJavaThread.ERR_THREAD_NOT_SUSPENDED`)
  - The given thread was explicitly suspended (status code `IJavaThread.ERR_INCOMPATIBLE_THREAD_STATE`)

### sendMessage

IJavaValue sendMessage(String selector, String signature, IJavaValue[] args, IJavaThread thread) throws org.eclipse.debug.core.DebugException
Returns the result of sending the specified message to this class with the given arguments in the specified thread (invokes a static method on this type). The given thread is resumed to perform this method invocation and suspends in its original location when this method invocation is complete. This method does not return until the method invocation is complete. Resuming the specified thread can result in breakpoints being hit, infinite loops, and deadlock.

Parameters:
  `selector` - the selector of the method to be invoked
  `signature` - the JNI style signature of the method to be invoked
  `args` - the arguments of the method, which can be `null` or empty if there are none
  `thread` - the thread in which to invoke the method
Returns:
  the result of invoking the method
Throws:
  `org.eclipse.debug.core.DebugException` - if this method fails. Reasons include:
  - Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  - This object does not implement the specified method
  - An exception occurs while invoking the specified method
  - The given thread is already performing a message send, (status code `IJavaThread.ERR_NESTED_METHOD_INVOCATION`)
  - The given thread is not currently suspended (status code `IJavaThread.ERR_THREAD_NOT_SUSPENDED`)
  - The given thread was explicitly suspended (status code `IJavaThread.ERR_INCOMPATIBLE_THREAD_STATE`)

### getSuperclass

IJavaClassType getSuperclass() throws org.eclipse.debug.core.DebugException
Returns the superclass of this class type, or `null` if no such class exists.

Returns:
  the superclass of this class type, or `null`
Throws:
  `org.eclipse.debug.core.DebugException` - if this method fails. Reasons include:
  - Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.

### getInterfaces

IJavaInterfaceType[] getInterfaces() throws org.eclipse.debug.core.DebugException
Returns the interface objects associated with the interfaces this class directly implements. Only those interfaces declared in the `implements` clause for this class are included.

Returns:
  the interface objects associated with the interfaces this class directly implements
Throws:
  `org.eclipse.debug.core.DebugException` - if this method fails. Reasons include:
  - Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
Since:
  3.0

### getAllInterfaces

IJavaInterfaceType[] getAllInterfaces() throws org.eclipse.debug.core.DebugException
Returns the interface objects associated with all interfaces this class implements, directly or indirectly.

Returns:
  the interface objects associated with the interfaces this class directly implements, directly or indirectly
Throws:
  `org.eclipse.debug.core.DebugException` - if this method fails. Reasons include:
  - Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
Since:
  3.0

### isEnum

boolean isEnum() throws org.eclipse.debug.core.DebugException
Returns whether this type is declared as a type safe enumeration.

Returns:
  `true` if this type is a type safe enumeration, `false` otherwise.
Throws:
  `org.eclipse.debug.core.DebugException` - if this method fails. Reasons include:
  - Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
Since:
  3.1