W3cubDocs

/OpenJDK 25

Interface InvokeDynamicEntry

All Superinterfaces:
DynamicConstantPoolEntry, PoolEntry
public sealed interface InvokeDynamicEntry extends DynamicConstantPoolEntry
Models a CONSTANT_InvokeDynamic_info structure, or the symbolic reference to a dynamically-computed call site, in the constant pool of a class file.

The use of a InvokeDynamicEntry is modeled by a DynamicCallSiteDesc symbolic descriptor. It can be obtained from InvokeDynamicEntry::asSymbol and converted back to a constant pool entry through ConstantPoolBuilder::invokeDynamicEntry.

An invoke dynamic entry is composite:

InvokeDynamicEntry(
    BootstrapMethodEntry bootstrap,
    NameAndTypeEntry nameAndType
)
where the type in the nameAndType is a method descriptor string.
API Note:
A dynamically-computed call site is frequently called a dynamic call site, or an indy, from the abbreviation of "invoke dynamic".
See Java Virtual Machine Specification:
4.4.10 The CONSTANT_Dynamic_info and CONSTANT_InvokeDynamic_info Structures
Since:
24
See Also:

Field Summary

Method Summary

Modifier and Type Method Description
default DynamicCallSiteDesc asSymbol()
Returns a symbolic descriptor for this dynamic call site.
default MethodTypeDesc typeSymbol()
Returns a symbolic descriptor for the invocation type of this dynamic call site.

Methods declared in interface PoolEntry

constantPool, index, tag, width

Method Details

typeSymbol

default MethodTypeDesc typeSymbol()
Returns a symbolic descriptor for the invocation type of this dynamic call site.
Returns:
a symbolic descriptor for the invocation type of this dynamic call site

asSymbol

default DynamicCallSiteDesc asSymbol()
Returns a symbolic descriptor for this dynamic call site.
Returns:
a symbolic descriptor for this dynamic call site
See Also:

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/constantpool/InvokeDynamicEntry.html