# Interface ClassType

All Superinterfaces:
  `DeclaredType, ReferenceType, TypeMirror`

All Known Subinterfaces:
  `EnumType`

public interface ClassType extends DeclaredType
Represents a class type. Interface types are represented separately by `InterfaceType`. Note that an enum is a kind of class.

While a `ClassDeclaration` represents the declaration of a class, a `ClassType` represents a class type. See `TypeDeclaration` for more on this distinction.

Since:
  1.5
Version:
  1.2 04/04/30
Author:
  Joseph D. Darcy, Scott Seligman

## Method Summary

Modifier and Type
Method
Description
`ClassDeclaration`
`getDeclaration()`
Returns the declaration of this type.
`ClassType`
`getSuperclass()`
Returns the class type that is a direct supertype of this one.

### Methods inherited from interface DeclaredType

`getActualTypeArguments, getContainingType, getSuperinterfaces`

### Methods inherited from interface TypeMirror

`accept, equals, toString`

## Method Details

### getDeclaration

ClassDeclaration getDeclaration()
Returns the declaration of this type.

Returns null if this type's declaration is unknown. This may be the result of a processing error, such as a missing class file.

Specified by:
  `getDeclaration` in interface `DeclaredType`
Returns:
  the declaration of this type, or null if unknown

### getSuperclass

ClassType getSuperclass()
Returns the class type that is a direct supertype of this one. This is the superclass of this type's declaring class, with any type arguments substituted in. The only class with no superclass is `java.lang.Object`, for which this method returns `null`.

For example, the class type extended by `java.util.TreeSet<String>` is `java.util.AbstractSet<String>`.

Returns:
  the class type that is a direct supertype of this one, or `null` if there is none