org.springframework.core.type

## Interface ClassMetadata

All Known Subinterfaces:
  AnnotationMetadata

All Known Implementing Classes:
  StandardAnnotationMetadata, StandardClassMetadata

    public interface ClassMetadata

Interface that defines abstract metadata of a specific class, in a form that does not require that class to be loaded yet.

Since:
  2.5
Author:
  Juergen Hoeller
See Also:
  `StandardClassMetadata`, `MetadataReader.getClassMetadata()`, `AnnotationMetadata`

### Method Summary

Methods
`String` `getClassName()` Return the name of the underlying class.
`String` `getEnclosingClassName()` Return the name of the enclosing class of the underlying class, or `null` if the underlying class is a top-level class.
`String[]` `getInterfaceNames()` Return the names of all interfaces that the underlying class implements, or an empty array if there are none.
`String[]` `getMemberClassNames()` Return the names of all classes declared as members of the class represented by this ClassMetadata object.
`String` `getSuperClassName()` Return the name of the super class of the underlying class, or `null` if there is no super class defined.
`boolean` `hasEnclosingClass()` Return whether the underlying class has an enclosing class (i.e.
`boolean` `hasSuperClass()` Return whether the underlying class has a super class.
`boolean` `isAbstract()` Return whether the underlying class is marked as abstract.
`boolean` `isConcrete()` Return whether the underlying class represents a concrete class, i.e.
`boolean` `isFinal()` Return whether the underlying class is marked as 'final'.
`boolean` `isIndependent()` Determine whether the underlying class is independent, i.e.
`boolean` `isInterface()` Return whether the underlying class represents an interface.

### Method Detail

#### getClassName

    String getClassName()

Return the name of the underlying class.

#### isInterface

    boolean isInterface()

Return whether the underlying class represents an interface.

#### isAbstract

    boolean isAbstract()

Return whether the underlying class is marked as abstract.

#### isConcrete

    boolean isConcrete()

Return whether the underlying class represents a concrete class, i.e. neither an interface nor an abstract class.

#### isFinal

    boolean isFinal()

Return whether the underlying class is marked as 'final'.

#### isIndependent

    boolean isIndependent()

Determine whether the underlying class is independent, i.e. whether it is a top-level class or a nested class (static inner class) that can be constructed independent from an enclosing class.

#### hasEnclosingClass

    boolean hasEnclosingClass()

Return whether the underlying class has an enclosing class (i.e. the underlying class is an inner/nested class or a local class within a method).

If this method returns `false`, then the underlying class is a top-level class.

#### getEnclosingClassName

    String getEnclosingClassName()

Return the name of the enclosing class of the underlying class, or `null` if the underlying class is a top-level class.

#### hasSuperClass

    boolean hasSuperClass()

Return whether the underlying class has a super class.

#### getSuperClassName

    String getSuperClassName()

Return the name of the super class of the underlying class, or `null` if there is no super class defined.

#### getInterfaceNames

    String[] getInterfaceNames()

Return the names of all interfaces that the underlying class implements, or an empty array if there are none.

#### getMemberClassNames

    String[] getMemberClassNames()

Return the names of all classes declared as members of the class represented by this ClassMetadata object. This includes public, protected, default (package) access, and private classes and interfaces declared by the class, but excludes inherited classes and interfaces. An empty array is returned if no member classes or interfaces exist.