Module java.base

Enum DirectMethodHandleDesc.Kind

java.lang.Object
java.lang.Enum<DirectMethodHandleDesc.Kind>
java.lang.constant.DirectMethodHandleDesc.Kind
All Implemented Interfaces:
Serializable, Comparable<DirectMethodHandleDesc.Kind>, Constable
Enclosing interface:
DirectMethodHandleDesc

public static enum DirectMethodHandleDesc.Kind
extends Enum<DirectMethodHandleDesc.Kind>
Kinds of method handles that can be described with DirectMethodHandleDesc.
Since:
12
  • Enum Constant Details

  • Field Details

    • refKind

      public final int refKind
      The corresponding refKind value for this kind of method handle, as defined by MethodHandleInfo
    • isInterface

      public final boolean isInterface
      Is this an interface
  • Method Details

    • values

      public static DirectMethodHandleDesc.Kind[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static DirectMethodHandleDesc.Kind valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • valueOf

      public static DirectMethodHandleDesc.Kind valueOf(int refKind)
      Returns the enumeration member with the given refKind field. Behaves as if valueOf(refKind, false). As a special case, if refKind is REF_invokeInterface (9) then the isInterface field will be true.
      Parameters:
      refKind - refKind of desired member
      Returns:
      the matching enumeration member
      Throws:
      IllegalArgumentException - if there is no such member
    • valueOf

      public static DirectMethodHandleDesc.Kind valueOf(int refKind, boolean isInterface)
      Returns the enumeration member with the given the refKind and isInterface arguments. For most values of refKind there is an exact match regardless of the value of isInterface. These are:
      • REF_invokeVirtual which matches to VIRTUAL
      • REF_invokeInterface which matches to INTERFACE_VIRTUAL
      • REF_newInvokeSpecial which matches to CONSTRUCTOR
      • REF_getField which matches to GETTER
      • REF_putField which matches to SETTER
      • REF_getStatic which matches to STATIC_GETTER
      • REF_putStatic which matches to STATIC_SETTER
      As for the rest, the returned kind will depend on the value (false or true accordingly) of isInterface:
      • REF_invokeStatic which matches to STATIC or INTERFACE_STATIC
      • REF_invokeSpecial which matches to SPECIAL or INTERFACE_SPECIAL
      Parameters:
      refKind - refKind of desired member
      isInterface - whether desired member is for interface methods
      Returns:
      the matching enumeration member
      Throws:
      IllegalArgumentException - if there is no such member