Module java.base

Enum DirectMethodHandleDesc.Kind

    • Field Detail

      • 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 Detail

      • 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