# Uses of Interface
java.lang.classfile.ClassElement

Packages that use ClassElement
Package
Description
java.lang.classfile
Provides classfile parsing, generation, and transformation library.
java.lang.classfile.attribute
Provides interfaces describing `class` file attributes for the `java.lang.classfile` library.

- ## Uses of ClassElement in java.lang.classfile

  Subinterfaces of ClassElement in java.lang.classfile
  Modifier and Type
  Interface
  Description
  `interface`
  `AccessFlags`
  Models the access flags for a class, method, or field.
  `interface`
  `ClassFileVersion`
  Models the minor and major version numbers of a `class` file (JVMS 4.1).
  `interface`
  `FieldModel`
  Models a field.
  `interface`
  `Interfaces`
  Models the interfaces (JVMS 4.1) of a class.
  `interface`
  `MethodModel`
  Models a method.
  `interface`
  `Superclass`
  Models the superclass (JVMS 4.1) of a class.
  Classes in java.lang.classfile that implement ClassElement
  Modifier and Type
  Class
  Description
  `class`
  `CustomAttribute<T extends CustomAttribute<T>>`
  Models a user-defined attribute in a `class` file.
  Subinterfaces with type arguments of type ClassElement in java.lang.classfile
  Modifier and Type
  Interface
  Description
  `interface`
  `ClassBuilder`
  A builder for a `class` file.
  `interface`
  `ClassModel`
  Models a `class` file.
  `interface`
  `ClassTransform`
  A transformation on streams of `ClassElement`.
  Method parameters in java.lang.classfile with type arguments of type ClassElement
  Modifier and Type
  Method
  Description
  `static ClassTransform`
  ClassTransform.`dropping(Predicate<ClassElement> filter)`
  Creates a class transform that passes each element through to the builder, except for those that the supplied `Predicate` returns true for.

- ## Uses of ClassElement in java.lang.classfile.attribute

  Subinterfaces of ClassElement in java.lang.classfile.attribute
  Modifier and Type
  Interface
  Description
  `interface`
  `CompilationIDAttribute`
  Models the `CompilationID` attribute, which records the compilation time of the `class` file.
  `interface`
  `DeprecatedAttribute`
  Models the `Deprecated` attribute (JVMS 4.7.15), which indicates this structure has been superseded.
  `interface`
  `EnclosingMethodAttribute`
  Models the `EnclosingMethod` attribute (JVMS 4.7.7), which indicates that this class is a local or anonymous class, and indicates the enclosing method or constructor of this class if this class is enclosed in exactly one method or constructor.
  `interface`
  `InnerClassesAttribute`
  Models the `InnerClasses` attribute (JVMS 4.7.6), which records which classes referenced by this `class` file are nested classes.
  `interface`
  `ModuleAttribute`
  Models the `Module` attribute (JVMS 4.7.25), which always appears on classes that represent module descriptors.
  `interface`
  `ModuleHashesAttribute`
  Models the `ModuleHashes` attribute, which appears on classes that represent module descriptors to capture the hashes of a set of co-delivered modules.
  `interface`
  `ModuleMainClassAttribute`
  Models the `ModuleMainClass` attribute (JVMS 4.7.27), which appears on classes that represent module descriptors to indicate the main class of the module.
  `interface`
  `ModulePackagesAttribute`
  Models the `ModulePackages` attribute (JVMS 4.7.26), which can appear on classes that represent module descriptors to indicate packages in the module used by the module descriptor.
  `interface`
  `ModuleResolutionAttribute`
  Models the `ModuleResolution` attribute, which can appear on classes that represent module descriptors, to capture resolution metadata for modules.
  `interface`
  `ModuleTargetAttribute`
  Models the `ModuleTarget` attribute, which can appear on classes that represent module descriptors, to represent constraints on the target platform.
  `interface`
  `NestHostAttribute`
  Models the `NestHost` attribute (JVMS 4.7.28), which indicates this class is a member of a nest and the host class of the nest.
  `interface`
  `NestMembersAttribute`
  Models the `NestMembers` attribute (JVMS 4.7.29), which indicates that this class is the host of a nest and the other nest members.
  `interface`
  `PermittedSubclassesAttribute`
  Models the `PermittedSubclasses` attribute (JVMS 4.7.31), which indicates this class or interface is sealed, and which classes or interfaces may extend or implement this class or interface.
  `interface`
  `RecordAttribute`
  Models the `Record` attribute (JVMS 4.7.30), which indicates that this class is a record class and the record components.
  `interface`
  `RuntimeInvisibleAnnotationsAttribute`
  Models the `RuntimeInvisibleAnnotations` attribute (JVMS 4.7.17), which stores declaration annotations on this structure that are visible to `class` file consumers but are not visible to core reflection.
  `interface`
  `RuntimeInvisibleTypeAnnotationsAttribute`
  Models the `RuntimeInvisibleTypeAnnotations` attribute (JVMS 4.7.21), which stores type-use annotations for the annotated uses of types in this structure that are visible to `class` file consumers but are not visible to core reflection.
  `interface`
  `RuntimeVisibleAnnotationsAttribute`
  Models the `RuntimeVisibleAnnotations` attribute (JVMS 4.7.16), which stores declaration annotations on this structure that are visible to both `class` file consumers and core reflection.
  `interface`
  `RuntimeVisibleTypeAnnotationsAttribute`
  Models the `RuntimeVisibleTypeAnnotations` attribute (JVMS 4.7.20), which stores type-use annotations for the annotated uses of types in this structure that are visible to both `class` file consumers and core reflection.
  `interface`
  `SignatureAttribute`
  Models the `Signature` attribute (JVMS 4.7.9), which indicates the generic signature of this structure.
  `interface`
  `SourceDebugExtensionAttribute`
  Models the `SourceDebugExtension` attribute (JVMS 4.7.11), which stores arbitrary modified UTF-8 data.
  `interface`
  `SourceFileAttribute`
  Models the `SourceFile` attribute (JVMS 4.7.10), which indicates the name of the source file from which this `class` file was compiled.
  `interface`
  `SourceIDAttribute`
  Models the `SourceID` attribute, which records the last modified time of the source file from which this `class` file was compiled.
  `interface`
  `SyntheticAttribute`
  Models the `Synthetic` attribute (JVMS 4.7.8), which marks a class member as implementation-specific artifacts.
  `interface`
  `UnknownAttribute`
  Models an unknown attribute read from a `class` file.