- All Implemented Interfaces:
ConstantDesc
- Enclosing class:
- VarHandle
public static final class VarHandle.VarHandleDesc extends DynamicConstantDesc<VarHandle>
A nominal descriptor for a
VarHandle constant.- Since:
- 12
-
Method Summary
Modifier and Type Method Description static VarHandle.VarHandleDescofArray(ClassDesc arrayClass)Returns a VarHandle.VarHandleDesc corresponding to aVarHandlefor an array type.static VarHandle.VarHandleDescofField(ClassDesc declaringClass, String name, ClassDesc fieldType)Returns a VarHandle.VarHandleDesc corresponding to aVarHandlefor an instance field.static VarHandle.VarHandleDescofStaticField(ClassDesc declaringClass, String name, ClassDesc fieldType)Returns a VarHandle.VarHandleDesc corresponding to aVarHandlefor a static field.VarHandleresolveConstantDesc(MethodHandles.Lookup lookup)Resolves this descriptor reflectively, emulating the resolution behavior of JVMS 5.4.3 and the access control behavior of JVMS 5.4.4.StringtoString()Returns a compact textual description of this constant description.ClassDescvarType()Returns aClassDescdescribing the type of the variable described by this descriptor.Methods declared in class java.lang.constant.DynamicConstantDesc
bootstrapArgs, bootstrapArgsList, bootstrapMethod, constantName, constantType, equals, of, of, ofCanonical, ofNamed
-
Method Details
-
ofField
public static VarHandle.VarHandleDesc ofField(ClassDesc declaringClass, String name, ClassDesc fieldType)Returns a VarHandle.VarHandleDesc corresponding to aVarHandlefor an instance field.- Parameters:
name- the unqualifed name of the fielddeclaringClass- aClassDescdescribing the declaring class, for field var handlesfieldType- aClassDescdescribing the type of the field- Returns:
- the VarHandle.VarHandleDesc
- Throws:
NullPointerException- if any of the arguments are null- See Java Virtual Machine Specification:
-
4.2.2 Unqualified Names
-
ofStaticField
public static VarHandle.VarHandleDesc ofStaticField(ClassDesc declaringClass, String name, ClassDesc fieldType)Returns a VarHandle.VarHandleDesc corresponding to aVarHandlefor a static field.- Parameters:
name- the unqualified name of the fielddeclaringClass- aClassDescdescribing the declaring class, for field var handlesfieldType- aClassDescdescribing the type of the field- Returns:
- the VarHandle.VarHandleDesc
- Throws:
NullPointerException- if any of the arguments are null- See Java Virtual Machine Specification:
-
4.2.2 Unqualified Names
-
ofArray
Returns a VarHandle.VarHandleDesc corresponding to aVarHandlefor an array type.- Parameters:
arrayClass- aClassDescdescribing the type of the array- Returns:
- the VarHandle.VarHandleDesc
- Throws:
NullPointerException- if any of the arguments are null
-
varType
Returns aClassDescdescribing the type of the variable described by this descriptor.- Returns:
- the variable type
-
resolveConstantDesc
public VarHandle resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationExceptionDescription copied from interface:ConstantDescResolves this descriptor reflectively, emulating the resolution behavior of JVMS 5.4.3 and the access control behavior of JVMS 5.4.4. The resolution and access control context is provided by theMethodHandles.Lookupparameter. No caching of the resulting value is performed.- Parameters:
lookup- TheMethodHandles.Lookupto provide name resolution and access control context- Returns:
- the resolved constant value
- Throws:
ReflectiveOperationException- if a class, method, or field could not be reflectively resolved in the course of resolution
-
toString
Returns a compact textual description of this constant description. For a field VarHandle, includes the owner, name, and type of the field, and whether it is static; for an array VarHandle, the name of the component type.- Overrides:
toStringin classDynamicConstantDesc<VarHandle>- Returns:
- A compact textual description of this descriptor
-