javamethodsjvminvokedynamic

What is call site in Java when calling method?


I'm trying to understand what is call site in JVM. Quote from https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html#jvms-5.4.3.6

The result of call site specifier resolution is a tuple consisting of:

• the reference to an instance of java.lang.invoke.MethodHandle,

• the reference to an instance of java.lang.invoke.MethodType,

• the references to instances of Class, java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, and String.

We also have the so called call site object https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic:

The result returned by the bootstrap method must be a reference to an object whose class is java.lang.invoke.CallSite or a subclass of java.lang.invoke.CallSite. This object is known as the call site object

The call site object concept is clear. This just an instance of CallSite. But what about call site specifier? Is that an Java object? Is that a String literal?


Solution