# Interface IJavaInterfaceType

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

public interface IJavaInterfaceType extends IJavaReferenceType
An interface an object implements 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
`IJavaClassType[]`
`getImplementors()`
Returns the class objects associated with the implementors of this interface type.
`IJavaInterfaceType[]`
`getSubInterfaces()`
Returns the interface objects associated with the sub-interfaces of this interface type.
`IJavaInterfaceType[]`
`getSuperInterfaces()`
Returns the interface objects associated with the super-interfaces of this interface type.
`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

### getImplementors

IJavaClassType[] getImplementors() throws org.eclipse.debug.core.DebugException
Returns the class objects associated with the implementors of this interface type. Returns an empty array if there are none.

Returns:
  the class objects associated with the implementors of this interface type
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

### getSubInterfaces

IJavaInterfaceType[] getSubInterfaces() throws org.eclipse.debug.core.DebugException
Returns the interface objects associated with the sub-interfaces of this interface type. Returns an empty array if there are none. The sub-interfaces are those interfaces that directly extend this interface, that is, those interfaces that declared this interface in their `extends` clause.

Returns:
  the interface objects associated with the sub-interfaces of this interface type
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

### getSuperInterfaces

IJavaInterfaceType[] getSuperInterfaces() throws org.eclipse.debug.core.DebugException
Returns the interface objects associated with the super-interfaces of this interface type. Returns an empty array if there are none. The super-interfaces are those interfaces that are directly extended by this interface, that is, those interfaces that this interface declared to be extended.

Returns:
  the interface objects associated with the super-interfaces of this interface type
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

### 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`)
Since:
  3.10