Package org.eclipse.jdt.core

# Interface ITypeParameter

All Superinterfaces:
  `org.eclipse.core.runtime.IAdaptable`, `IJavaElement`, `ISourceReference`

public interface ITypeParameter extends IJavaElement, ISourceReference
Represents a type parameter defined by a type or a method in a compilation unit or a class file.

Type parameters are obtained using `IType.getTypeParameter(String)` and `IMethod.getTypeParameter(String)`.

Note that type parameters are not children of their declaring type or method. To get a list of the type parameters use `IType.getTypeParameters()` for a type and use `IMethod.getTypeParameters()` for a method.

Since:
  3.1
Restriction:
  This interface is not intended to be implemented by clients.

## Field Summary

### Fields inherited from interface org.eclipse.jdt.core.IJavaElement

`ANNOTATION, CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_MODULE, JAVA_PROJECT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE, TYPE_PARAMETER`

## Method Summary

Modifier and Type
Method
Description
`String[]`
`getBounds()`
Returns the names of the class and interface bounds of this type parameter.
`String[]`
`getBoundsSignatures()`
Returns the signatures for this type parameter's bounds.
`IMember`
`getDeclaringMember()`
Returns the declaring member of this type parameter.
`ITypeRoot`
`getTypeRoot()`
Returns the Java type root in which this type parameter is declared.

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

`getAdapter`

### Methods inherited from interface org.eclipse.jdt.core.IJavaElement

`exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getElementName, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown`

### Methods inherited from interface org.eclipse.jdt.core.ISourceReference

`exists, getNameRange, getSource, getSourceRange`

## Method Details

### getBounds

String[] getBounds() throws JavaModelException
Returns the names of the class and interface bounds of this type parameter. Returns an empty array if this type parameter has no bounds. A bound name is the name as it appears in the source (without the `extends` keyword) if the type parameter comes from a compilation unit. It is the dot-separated fully qualified name of the bound if the type parameter comes from a class file.

Returns:
  the names of the bounds
Throws:
  `JavaModelException` - if this element does not exist or if an exception occurs while accessing its corresponding resource

### getBoundsSignatures

String[] getBoundsSignatures() throws JavaModelException
Returns the signatures for this type parameter's bounds. The type parameter may have been declared as part of a type or a method. The signatures represent only the individual bounds and do not include the type variable name or the `extends` keyword. The signatures may be either unresolved (for source types) or resolved (for binary types). See `Signature` for details.

Returns:
  the signatures for the bounds of this formal type parameter
Throws:
  `JavaModelException` - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
  3.6
See Also:
  - `Signature`

### getDeclaringMember

IMember getDeclaringMember()
Returns the declaring member of this type parameter. This can be either an `IType` or an `IMethod`.

This is a handle-only method.

Returns:
  the declaring member of this type parameter.

### getTypeRoot

ITypeRoot getTypeRoot()
Returns the Java type root in which this type parameter is declared.

This is a handle-only method.

Returns:
  the Java type root in which this type parameter is declared
Since:
  3.7