Uses of Class java.lang.invoke.CallSite (Java SE 15 & JDK 15)
Description: use: module: java.base, package: java.lang.invoke, class: CallSite

# Uses of Class
java.lang.invoke.CallSite

Packages that use CallSite
Package | Description
--- | ---
java.lang.constant | Classes and interfaces to represent nominal descriptors for run-time entities such as classes or method handles, and classfile entities such as constant pool entries or `invokedynamic` call sites.
java.lang.invoke | The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.
jdk.dynalink.support | Contains classes that make using Dynalink more convenient by providing basic implementations of some classes as well as various utilities.

- ## Uses of CallSite in java.lang.constant

  Methods in java.lang.constant that return CallSite
  Modifier and Type | Method | Description
  --- | --- | ---
  `CallSite` | DynamicCallSiteDesc.`resolveCallSiteDesc​(MethodHandles.Lookup lookup)` | Reflectively invokes the bootstrap method with the specified arguments, and return the resulting `CallSite`

- ## Uses of CallSite in java.lang.invoke

  Subclasses of CallSite in java.lang.invoke
  Modifier and Type | Class | Description
  --- | --- | ---
  `class` | `ConstantCallSite` | A `ConstantCallSite` is a `CallSite` whose target is permanent, and can never be changed.
  `class` | `MutableCallSite` | A `MutableCallSite` is a `CallSite` whose target variable behaves like an ordinary field.
  `class` | `VolatileCallSite` | A `VolatileCallSite` is a `CallSite` whose target acts like a volatile variable.

  Methods in java.lang.invoke that return CallSite
  Modifier and Type | Method | Description
  --- | --- | ---
  `static CallSite` | LambdaMetafactory.`altMetafactory​(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, Object... args)` | Facilitates the creation of simple "function objects" that implement one or more interfaces by delegation to a provided `MethodHandle`, after appropriate type adaptation and partial evaluation of arguments.
  `static CallSite` | StringConcatFactory.`makeConcat​(MethodHandles.Lookup lookup, String name, MethodType concatType)` | Facilitates the creation of optimized String concatenation methods, that can be used to efficiently concatenate a known number of arguments of known types, possibly after type adaptation and partial evaluation of arguments.
  `static CallSite` | StringConcatFactory.`makeConcatWithConstants​(MethodHandles.Lookup lookup, String name, MethodType concatType, String recipe, Object... constants)` | Facilitates the creation of optimized String concatenation methods, that can be used to efficiently concatenate a known number of arguments of known types, possibly after type adaptation and partial evaluation of arguments.
  `static CallSite` | LambdaMetafactory.`metafactory​(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, MethodType samMethodType, MethodHandle implMethod, MethodType instantiatedMethodType)` | Facilitates the creation of simple "function objects" that implement one or more interfaces by delegation to a provided `MethodHandle`, after appropriate type adaptation and partial evaluation of arguments.

- ## Uses of CallSite in jdk.dynalink.support

  Subclasses of CallSite in jdk.dynalink.support
  Modifier and Type | Class | Description
  --- | --- | ---
  `class` | `AbstractRelinkableCallSite` | A basic implementation of the `RelinkableCallSite` as a `MutableCallSite`.
  `class` | `ChainedCallSite` | A relinkable call site that implements a polymorphic inline caching strategy.
  `class` | `SimpleRelinkableCallSite` | A relinkable call site that implements monomorphic inline caching strategy, only being linked to a single `GuardedInvocation` at any given time.