# Uses of Package
java.lang.classfile

Packages that use java.lang.classfile
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.
java.lang.classfile.constantpool
Provides interfaces describing constant pool entries for the `java.lang.classfile` library.
java.lang.classfile.instruction
Provides interfaces describing code instructions for the `java.lang.classfile` library.

- Classes in java.lang.classfile used by java.lang.classfile
  Class
  Description
  AccessFlags
  Models the access flags for a class, method, or field.
  Annotation
  Models an `annotation` structure (JVMS 4.7.16) or part of a `type_annotation` structure (JVMS 4.7.20).
  AnnotationElement
  Models an element-value pair in the `element_value_pairs` table in the `annotation` structure defined in JVMS 4.7.16 or the `type_annotation` structure defined in JVMS 4.7.20.
  AnnotationValue
  Models an `element_value` structure, or a value of an element-value pair of an annotation, as defined in JVMS 4.7.16.1.
  AnnotationValue.OfAnnotation
  Models an annotation value of an element-value pair.
  AnnotationValue.OfArray
  Models an array value of an element-value pair.
  AnnotationValue.OfBoolean
  Models a boolean value of an element-value pair.
  AnnotationValue.OfByte
  Models a byte value of an element-value pair.
  AnnotationValue.OfChar
  Models a char value of an element-value pair.
  AnnotationValue.OfClass
  Models a class value of an element-value pair.
  AnnotationValue.OfConstant
  Models a constant value of an element-value pair.
  AnnotationValue.OfDouble
  Models a double value of an element-value pair.
  AnnotationValue.OfEnum
  Models an enum value of an element-value pair.
  AnnotationValue.OfFloat
  Models a float value of an element-value pair.
  AnnotationValue.OfInt
  Models an int value of an element-value pair.
  AnnotationValue.OfLong
  Models a long value of an element-value pair.
  AnnotationValue.OfShort
  Models a short value of an element-value pair.
  AnnotationValue.OfString
  Models a string value of an element-value pair.
  Attribute
  Models an attribute (JVMS 4.7) in the `class` file format.
  AttributedElement
  A `ClassFileElement` describing a `class` file structure that has attributes, such as a `class` file, a field, a method, a `Code` attribute, or a record component.
  AttributeMapper
  Bidirectional mapper between the `class` file representation of an attribute and its API model.
  AttributeMapper.AttributeStability
  Indicates the data dependency of the `class` file representation of an attribute.
  BufWriter
  Advanced `class` file writing support for `AttributeMapper`s.
  ClassBuilder
  A builder for a `class` file.
  ClassElement
  Marker interface for a member element of a `ClassModel`.
  ClassFile
  Provides ability to parse, transform, and generate `class` files.
  ClassFile.AttributeMapperOption
  The option describing user-defined attributes for parsing `class` files.
  ClassFile.AttributesProcessingOption
  The option describing whether to retain or discard attributes that cannot verify their correctness after a transformation.
  ClassFile.ClassHierarchyResolverOption
  The option describing the class hierarchy resolver to use when generating stack maps or verifying classes.
  ClassFile.ConstantPoolSharingOption
  Option describing whether to extend from the original constant pool when transforming a `class` file.
  ClassFile.DeadCodeOption
  The option describing whether to patch out unreachable code for stack map generation.
  ClassFile.DeadLabelsOption
  The option describing whether to filter unbound labels and drop their enclosing structures if possible.
  ClassFile.DebugElementsOption
  The option describing whether to process or discard debug `PseudoInstruction`s in the traversal of a `CodeModel` or a `CodeBuilder`.
  ClassFile.LineNumbersOption
  The option describing whether to process or discard `LineNumber`s in the traversal of a `CodeModel` or a `CodeBuilder`.
  ClassFile.Option
  An option that affects the parsing or writing of `class` files.
  ClassFile.ShortJumpsOption
  The option describing whether to automatically rewrite short jumps to equivalent instructions when necessary.
  ClassFile.StackMapsOption
  The option describing whether to generate stack maps.
  ClassFileBuilder
  A builder for a `CompoundElement`, which accepts the member elements to be integrated into the built structure.
  ClassFileElement
  Marker interface for structures with special capabilities in the `class` file format.
  ClassFileTransform
  A transformation on a `CompoundElement` by processing its individual member elements and sending the results to a `ClassFileBuilder`, through `ClassFileBuilder.transform(java.lang.classfile.CompoundElement<E>, java.lang.classfile.ClassFileTransform<?, E, B>)`.
  ClassFileVersion
  Models the minor and major version numbers of a `class` file (JVMS 4.1).
  ClassHierarchyResolver
  Provides class hierarchy information for stack maps generation and verification.
  ClassHierarchyResolver.ClassHierarchyInfo
  Information about a resolved class.
  ClassModel
  Models a `class` file.
  ClassReader
  Advanced `class` file reading support for `AttributeMapper`s.
  ClassSignature
  Models the generic signature of a class or interface, as defined by JVMS 4.7.9.1.
  ClassTransform
  A transformation on streams of `ClassElement`.
  CodeBuilder
  A builder for `Code` attributes (method bodies).
  CodeBuilder.BlockCodeBuilder
  A builder for blocks of code.
  CodeBuilder.CatchBuilder
  A builder to add catch blocks.
  CodeElement
  Marker interface for a member element of a `CodeModel`.
  CodeModel
  Models the body of a method (the `Code` attribute).
  CodeTransform
  A transformation on streams of `CodeElement`.
  CompoundElement
  A `class` file structure that can be viewed as a composition of its member structures.
  CustomAttribute
  Models a user-defined attribute in a `class` file.
  FieldBuilder
  A builder for fields.
  FieldElement
  Marker interface for a member element of a `FieldModel`.
  FieldModel
  Models a field.
  FieldTransform
  A transformation on streams of `FieldElement`.
  Interfaces
  Models the interfaces (JVMS 4.1) of a class.
  Label
  A marker for a position within the instructions of a method body.
  MethodBuilder
  A builder for methods.
  MethodElement
  Marker interface for a member element of a `MethodModel`.
  MethodModel
  Models a method.
  MethodSignature
  Models the generic signature of a method or constructor, as defined by JVMS 4.7.9.1.
  MethodTransform
  A transformation on streams of `MethodElement`.
  Opcode
  Describes the opcodes of the JVM instruction set, as described in JVMS 6.5.
  Opcode.Kind
  Kinds of opcodes.
  Signature
  Models generic Java type signatures, as defined in JVMS 4.7.9.1.
  Signature.ArrayTypeSig
  Models the signature of an array type.
  Signature.BaseTypeSig
  Models the signature of a primitive type (JLS 4.2) or void.
  Signature.ClassTypeSig
  Models the signature of a possibly-parameterized class or interface type.
  Signature.RefTypeSig
  Models the signature of a reference type, which may be a class, interface, type variable, or array type.
  Signature.ThrowableSig
  Marker interface for a signature for a throwable type.
  Signature.TypeArg
  Models a type argument, an argument to a type parameter.
  Signature.TypeArg.Bounded
  Models a type argument with an explicit bound type.
  Signature.TypeArg.Bounded.WildcardIndicator
  Models a type argument's wildcard indicator.
  Signature.TypeArg.Unbounded
  Models an unbounded wildcard type argument `*`, or `?` in Java programs.
  Signature.TypeParam
  Models a signature for a type parameter of a generic class, interface, method, or constructor, which introduces a type variable.
  Signature.TypeVarSig
  Models the signature of a type variable.
  Superclass
  Models the superclass (JVMS 4.1) of a class.
  TypeAnnotation
  Models a `type_annotation` structure (JVMS 4.7.20).
  TypeAnnotation.CatchTarget
  Indicates that an annotation appears on the i'th type in an exception parameter declaration.
  TypeAnnotation.EmptyTarget
  Indicates that an annotation appears on either the type in a field declaration, the return type of a method, the type of a newly constructed object, or the receiver type of a method or constructor.
  TypeAnnotation.FormalParameterTarget
  Indicates that an annotation appears on the type in a formal parameter declaration of a method, constructor, or lambda expression.
  TypeAnnotation.LocalVarTarget
  Indicates that an annotation appears on the type in a local variable declaration, including a variable declared as a resource in a try-with-resources statement.
  TypeAnnotation.LocalVarTargetInfo
  Indicates a range of code array offsets within which a local variable has a value, and the index into the local variable array of the current frame at which that local variable can be found.
  TypeAnnotation.OffsetTarget
  Indicates that an annotation appears on either the type in an instanceof expression or a new expression, or the type before the :: in a method reference expression.
  TypeAnnotation.SupertypeTarget
  Indicates that an annotation appears on a type in the extends or implements clause of a class or interface declaration.
  TypeAnnotation.TargetInfo
  Specifies which type in a declaration or expression is being annotated.
  TypeAnnotation.TargetType
  The kind of target on which the annotation appears, as defined in JVMS 4.7.20.1.
  TypeAnnotation.ThrowsTarget
  Indicates that an annotation appears on the i'th type in the throws clause of a method or constructor declaration.
  TypeAnnotation.TypeArgumentTarget
  Indicates that an annotation appears either on the i'th type in a cast expression, or on the i'th type argument in the explicit type argument list for any of the following: a new expression, an explicit constructor invocation statement, a method invocation expression, or a method reference expression.
  TypeAnnotation.TypeParameterBoundTarget
  Indicates that an annotation appears on the i'th bound of the j'th type parameter declaration of a generic class, interface, method, or constructor.
  TypeAnnotation.TypeParameterTarget
  Indicates that an annotation appears on the declaration of the i'th type parameter of a generic class, generic interface, generic method, or generic constructor.
  TypeAnnotation.TypePathComponent
  JVMS: Type_path structure identifies which part of the type is annotated, as defined in JVMS 4.7.20.2
  TypeAnnotation.TypePathComponent.Kind
  Type path kind, as defined in JVMS 4.7.20.2
  TypeKind
  Describes the data types Java Virtual Machine operates on.
- Classes in java.lang.classfile used by java.lang.classfile.attribute
  Class
  Description
  Annotation
  Models an `annotation` structure (JVMS 4.7.16) or part of a `type_annotation` structure (JVMS 4.7.20).
  AnnotationValue
  Models an `element_value` structure, or a value of an element-value pair of an annotation, as defined in JVMS 4.7.16.1.
  Attribute
  Models an attribute (JVMS 4.7) in the `class` file format.
  AttributedElement
  A `ClassFileElement` describing a `class` file structure that has attributes, such as a `class` file, a field, a method, a `Code` attribute, or a record component.
  BootstrapMethodEntry
  Models an entry in the bootstrap method table.
  ClassElement
  Marker interface for a member element of a `ClassModel`.
  ClassFileElement
  Marker interface for structures with special capabilities in the `class` file format.
  ClassSignature
  Models the generic signature of a class or interface, as defined by JVMS 4.7.9.1.
  CodeElement
  Marker interface for a member element of a `CodeModel`.
  CodeModel
  Models the body of a method (the `Code` attribute).
  CompoundElement
  A `class` file structure that can be viewed as a composition of its member structures.
  FieldElement
  Marker interface for a member element of a `FieldModel`.
  Label
  A marker for a position within the instructions of a method body.
  MethodElement
  Marker interface for a member element of a `MethodModel`.
  MethodSignature
  Models the generic signature of a method or constructor, as defined by JVMS 4.7.9.1.
  Signature
  Models generic Java type signatures, as defined in JVMS 4.7.9.1.
  TypeAnnotation
  Models a `type_annotation` structure (JVMS 4.7.20).
- Classes in java.lang.classfile used by java.lang.classfile.constantpool
  Class
  Description
  BootstrapMethodEntry
  Models an entry in the bootstrap method table.
  ClassModel
  Models a `class` file.
  TypeKind
  Describes the data types Java Virtual Machine operates on.
- Classes in java.lang.classfile used by java.lang.classfile.instruction
  Class
  Description
  ClassFileElement
  Marker interface for structures with special capabilities in the `class` file format.
  CodeElement
  Marker interface for a member element of a `CodeModel`.
  Instruction
  Models an executable instruction in the `code` array of the `Code` attribute of a method.
  Label
  A marker for a position within the instructions of a method body.
  Opcode
  Describes the opcodes of the JVM instruction set, as described in JVMS 6.5.
  PseudoInstruction
  Models metadata about a `CodeModel`, derived from the `Code` attribute itself or its attributes.
  Signature
  Models generic Java type signatures, as defined in JVMS 4.7.9.1.
  TypeKind
  Describes the data types Java Virtual Machine operates on.