NameAndTypeEntry (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: java.lang.classfile.constantpool, interface: NameAndTypeEntry
Keywords: java.lang.classfile.constantpool.NameAndTypeEntry interface

# Interface NameAndTypeEntry

All Superinterfaces:
  `PoolEntry`

public sealed interface NameAndTypeEntry extends PoolEntry
Models a `CONSTANT_NameAndType_info` structure, representing a field or method, in the constant pool of a `class` file.

The use of a `NameAndTypeEntry` is symbolically represented as a `String name`, and a `ClassDesc` or a `MethodTypeDesc` `type`, depending on where this `NameAndTypeEntry` appears. The accessors to the symbolic descriptors for the `type` is defined on a per-use-site basis, such as `FieldRefEntry.typeSymbol()` returning a `ClassDesc`, and `MethodRefEntry.typeSymbol()` returning a `MethodTypeDesc`.

A name and type entry is composite:

    NameAndTypeEntry(
        Utf8Entry name,
        Utf8Entry type
    )

where `name` is an unqualified name, and `type` is a field or method descriptor string.

See Java Virtual Machine Specification:
  4.4.6 The `CONSTANT_NameAndType_info` Structure
Since:
  24

- ## Field Summary

  ### Fields declared in interface PoolEntry

  `TAG_CLASS, TAG_DOUBLE, TAG_DYNAMIC, TAG_FIELDREF, TAG_FLOAT, TAG_INTEGER, TAG_INTERFACE_METHODREF, TAG_INVOKE_DYNAMIC, TAG_LONG, TAG_METHOD_HANDLE, TAG_METHOD_TYPE, TAG_METHODREF, TAG_MODULE, TAG_NAME_AND_TYPE, TAG_PACKAGE, TAG_STRING, TAG_UTF8`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Utf8Entry`
  `name()`
  Returns the field or method name.
  `Utf8Entry`
  `type()`
  Returns the field or method descriptor string.

  ### Methods declared in interface PoolEntry

  `constantPool, index, tag, width`

- ## Method Details

  - ### name

    Utf8Entry name()
    Returns the field or method name.
    Returns:
      the field or method name

  - ### type

    Utf8Entry type()
    Returns the field or method descriptor string. It is a method descriptor strings if it starts with `(`. Otherwise, it is a field descriptor string, and must start with one of the `BCDFIJSZL[` characters.
    Returns:
      the field or method descriptor string