# Interface MemberRefEntry

All Superinterfaces:
  `PoolEntry`

All Known Subinterfaces:
  `FieldRefEntry, InterfaceMethodRefEntry, MethodRefEntry`

public sealed interface MemberRefEntry extends PoolEntry permits FieldRefEntry, InterfaceMethodRefEntry, MethodRefEntry (not exhaustive)
Superinterface modeling symbolic references to a member of a class or interface in the constant pool of a `class` file, which include references to fields, class methods, and interface methods.

Different types of symbolic references to a member of a class or interface bear structural similarities and share parts of the resolution processes, and they can sometimes appear in the same locations. For example, both `MethodRefEntry` and `InterfaceMethodRefEntry` can appear in an `invokestatic` instruction.

A member reference entry is composite:

    MemberRefEntry(
        ClassEntry owner,
        NameAndTypeEntry nameAndType
    )

See Java Virtual Machine Specification:
  4.4.2 The `CONSTANT_Fieldref_info`, `CONSTANT_Methodref_info`, and `CONSTANT_InterfaceMethodref_info` Structures
Sealed Class Hierarchy Graph:
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
`default Utf8Entry`
`name()`
Returns the name of the member.
`NameAndTypeEntry`
`nameAndType()`
Returns the name and descriptor string of the member.
`ClassEntry`
`owner()`
Returns the class or interface which this member belongs to.
`default Utf8Entry`
`type()`
Returns the descriptor string of the member.

### Methods declared in interface PoolEntry

`constantPool, index, tag, width`

## Method Details

### owner

ClassEntry owner()
Returns the class or interface which this member belongs to.

Returns:
  the class or interface which this member belongs to

### nameAndType

NameAndTypeEntry nameAndType()
Returns the name and descriptor string of the member.

Returns:
  the name and descriptor string of the member

### name

default Utf8Entry name()
Returns the name of the member.

Returns:
  the name of the member

### type

default Utf8Entry type()
Returns the descriptor string of the member. This is a field descriptor string if this entry is a `FieldRefEntry`, or a method descriptor string if this entry is a `MethodRefEntry` or `InterfaceMethodRefEntry`.

API Note:
  Each subinterface defines a `typeSymbol()` accessor for the symbolic descriptor for the member type.
Returns:
  the descriptor string of the member