Class DynamicCallSiteDesc
java.lang.Object
java.lang.constant.DynamicCallSiteDesc
A nominal descriptor for an
 
invokedynamic call site.
 Concrete subtypes of DynamicCallSiteDesc should be immutable and their behavior should not rely on object identity.
- Since:
- 12
- 
Method SummaryModifier and TypeMethodDescriptionReturnsConstantDescs describing the bootstrap arguments for theinvokedynamic.Returns aMethodHandleDescdescribing the bootstrap method for theinvokedynamic.final booleanCompares the specified object with this descriptor for equality.final inthashCode()Returns a hash code value for this object.Returns the invocation name that would appear in theNameAndTypeoperand of theinvokedynamic.Returns aMethodTypeDescdescribing the invocation type that would appear in theNameAndTypeoperand of theinvokedynamic.static DynamicCallSiteDescof(DirectMethodHandleDesc bootstrapMethod, MethodTypeDesc invocationType) Creates a nominal descriptor for aninvokedynamiccall site whose bootstrap method has no static arguments and for which the name parameter isConstantDescs.DEFAULT_NAME.static DynamicCallSiteDescof(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType) Creates a nominal descriptor for aninvokedynamiccall site whose bootstrap method has no static arguments.static DynamicCallSiteDescof(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType, ConstantDesc... bootstrapArgs) Creates a nominal descriptor for aninvokedynamiccall site.Reflectively invokes the bootstrap method with the specified arguments, and return the resultingCallSitetoString()Returns a compact textual description of this call site description, including the bootstrap method, the invocation name and type, and the static bootstrap arguments.withArgs(ConstantDesc... bootstrapArgs) Returns a nominal descriptor for aninvokedynamiccall site whose bootstrap method, name, and invocation type are the same as this one, but with the specified bootstrap arguments.withNameAndType(String invocationName, MethodTypeDesc invocationType) Returns a nominal descriptor for aninvokedynamiccall site whose bootstrap and bootstrap arguments are the same as this one, but with the specified invocationName and invocation invocationType
- 
Method Details- 
ofpublic static DynamicCallSiteDesc of(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType, ConstantDesc... bootstrapArgs) Creates a nominal descriptor for aninvokedynamiccall site.- Parameters:
- bootstrapMethod- a- DirectMethodHandleDescdescribing the bootstrap method for the- invokedynamic
- invocationName- The unqualified name that would appear in the- NameAndTypeoperand of the- invokedynamic
- invocationType- a- MethodTypeDescdescribing the invocation type that would appear in the- NameAndTypeoperand of the- invokedynamic
- bootstrapArgs-- ConstantDescs describing the static arguments to the bootstrap, that would appear in the- BootstrapMethodsattribute
- Returns:
- the nominal descriptor
- Throws:
- NullPointerException- if any parameter or its contents are- null
- IllegalArgumentException- if the invocation name has the incorrect format
- See Java Virtual Machine Specification:
- 
4.2.2 Unqualified Names
 
- 
ofpublic static DynamicCallSiteDesc of(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType) Creates a nominal descriptor for aninvokedynamiccall site whose bootstrap method has no static arguments.- Parameters:
- bootstrapMethod- The bootstrap method for the- invokedynamic
- invocationName- The invocationName that would appear in the- NameAndTypeoperand of the- invokedynamic
- invocationType- The invocation invocationType that would appear in the- NameAndTypeoperand of the- invokedynamic
- Returns:
- the nominal descriptor
- Throws:
- NullPointerException- if any parameter is null
- IllegalArgumentException- if the invocation name has the incorrect format
 
- 
ofpublic static DynamicCallSiteDesc of(DirectMethodHandleDesc bootstrapMethod, MethodTypeDesc invocationType) Creates a nominal descriptor for aninvokedynamiccall site whose bootstrap method has no static arguments and for which the name parameter isConstantDescs.DEFAULT_NAME.- Parameters:
- bootstrapMethod- a- DirectMethodHandleDescdescribing the bootstrap method for the- invokedynamic
- invocationType- a- MethodTypeDescdescribing the invocation type that would appear in the- NameAndTypeoperand of the- invokedynamic
- Returns:
- the nominal descriptor
- Throws:
- NullPointerException- if any parameter is null
 
- 
withArgsReturns a nominal descriptor for aninvokedynamiccall site whose bootstrap method, name, and invocation type are the same as this one, but with the specified bootstrap arguments.- Parameters:
- bootstrapArgs-- ConstantDescs describing the static arguments to the bootstrap, that would appear in the- BootstrapMethodsattribute
- Returns:
- the nominal descriptor
- Throws:
- NullPointerException- if the argument or its contents are- null
 
- 
withNameAndTypeReturns a nominal descriptor for aninvokedynamiccall site whose bootstrap and bootstrap arguments are the same as this one, but with the specified invocationName and invocation invocationType- Parameters:
- invocationName- The unqualified name that would appear in the- NameAndTypeoperand of the- invokedynamic
- invocationType- a- MethodTypeDescdescribing the invocation type that would appear in the- NameAndTypeoperand of the- invokedynamic
- Returns:
- the nominal descriptor
- Throws:
- NullPointerException- if any parameter is null
- IllegalArgumentException- if the invocation name has the incorrect format
- See Java Virtual Machine Specification:
- 
4.2.2 Unqualified Names
 
- 
invocationNameReturns the invocation name that would appear in theNameAndTypeoperand of theinvokedynamic.- Returns:
- the invocation name
 
- 
invocationTypeReturns aMethodTypeDescdescribing the invocation type that would appear in theNameAndTypeoperand of theinvokedynamic.- Returns:
- the invocation type
 
- 
bootstrapMethodReturns aMethodHandleDescdescribing the bootstrap method for theinvokedynamic.- Returns:
- the bootstrap method for the invokedynamic
 
- 
bootstrapArgsReturnsConstantDescs describing the bootstrap arguments for theinvokedynamic. The returned array is always non-null. A zero length array is returned if this DynamicCallSiteDesc has no bootstrap arguments.- Returns:
- the bootstrap arguments for the invokedynamic
 
- 
resolveCallSiteDescReflectively invokes the bootstrap method with the specified arguments, and return the resultingCallSite- Parameters:
- lookup- The- MethodHandles.Lookupused to resolve class names
- Returns:
- the CallSite
- Throws:
- Throwable- if any exception is thrown by the bootstrap method
 
- 
equalsCompares the specified object with this descriptor for equality. Returnstrueif and only if the specified object is also a DynamicCallSiteDesc, and both descriptors have equal bootstrap methods, bootstrap argument lists, invocation name, and invocation type.
- 
hashCodepublic final int hashCode()Description copied from class:ObjectReturns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided byHashMap.The general contract of hashCodeis:- Whenever it is invoked on the same object more than once during
     an execution of a Java application, the hashCodemethod must consistently return the same integer, provided no information used inequalscomparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
- If two objects are equal according to the equalsmethod, then calling thehashCodemethod on each of the two objects must produce the same integer result.
- It is not required that if two objects are unequal
     according to the equalsmethod, then calling thehashCodemethod on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
 
- Whenever it is invoked on the same object more than once during
     an execution of a Java application, the 
- 
toString
 
-