VarHandle.AccessMode (Java SE 9 & JDK 9 )
Keywords: java.lang.invoke.VarHandle.AccessMode class

Module java.base
Package java.lang.invoke

## Enum VarHandle.AccessMode

- java.lang.Object
- - java.lang.Enum<VarHandle.AccessMode>
  - - java.lang.invoke.VarHandle.AccessMode

- All Implemented Interfaces:
    `Serializable`, `Comparable<VarHandle.AccessMode>`
  Enclosing class:
    VarHandle

      public static enum VarHandle.AccessMode
      extends Enum<VarHandle.AccessMode>

  The set of access modes that specify how a variable, referenced by a VarHandle, is accessed.

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---
    `COMPARE_AND_EXCHANGE` | The access mode whose access is specified by the corresponding method `VarHandle.compareAndExchange`
    `COMPARE_AND_EXCHANGE_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.compareAndExchangeAcquire`
    `COMPARE_AND_EXCHANGE_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.compareAndExchangeRelease`
    `COMPARE_AND_SET` | The access mode whose access is specified by the corresponding method `VarHandle.compareAndSet`
    `GET` | The access mode whose access is specified by the corresponding method `VarHandle.get`
    `GET_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.getAcquire`
    `GET_AND_ADD` | The access mode whose access is specified by the corresponding method `VarHandle.getAndAdd`
    `GET_AND_ADD_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndAddAcquire`
    `GET_AND_ADD_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndAddRelease`
    `GET_AND_BITWISE_AND` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseAnd`
    `GET_AND_BITWISE_AND_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseAndAcquire`
    `GET_AND_BITWISE_AND_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseAndRelease`
    `GET_AND_BITWISE_OR` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseOr`
    `GET_AND_BITWISE_OR_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseOrAcquire`
    `GET_AND_BITWISE_OR_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseOrRelease`
    `GET_AND_BITWISE_XOR` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseXor`
    `GET_AND_BITWISE_XOR_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseXorAcquire`
    `GET_AND_BITWISE_XOR_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseXorRelease`
    `GET_AND_SET` | The access mode whose access is specified by the corresponding method `VarHandle.getAndSet`
    `GET_AND_SET_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndSetAcquire`
    `GET_AND_SET_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.getAndSetRelease`
    `GET_OPAQUE` | The access mode whose access is specified by the corresponding method `VarHandle.getOpaque`
    `GET_VOLATILE` | The access mode whose access is specified by the corresponding method `VarHandle.getVolatile`
    `SET` | The access mode whose access is specified by the corresponding method `VarHandle.set`
    `SET_OPAQUE` | The access mode whose access is specified by the corresponding method `VarHandle.setOpaque`
    `SET_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.setRelease`
    `SET_VOLATILE` | The access mode whose access is specified by the corresponding method `VarHandle.setVolatile`
    `WEAK_COMPARE_AND_SET` | The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSet`
    `WEAK_COMPARE_AND_SET_ACQUIRE` | The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSetAcquire`
    `WEAK_COMPARE_AND_SET_PLAIN` | The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSetPlain`
    `WEAK_COMPARE_AND_SET_RELEASE` | The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSetRelease`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `methodName​()` | Returns the `VarHandle` signature-polymorphic method name associated with this `AccessMode` value.
    `static VarHandle.AccessMode` | `valueFromMethodName​(String methodName)` | Returns the `AccessMode` value associated with the specified `VarHandle` signature-polymorphic method name.
    `static VarHandle.AccessMode` | `valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static VarHandle.AccessMode[]` | `values​()` | Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### GET

          public static final VarHandle.AccessMode GET

      The access mode whose access is specified by the corresponding method `VarHandle.get`

    - #### SET

          public static final VarHandle.AccessMode SET

      The access mode whose access is specified by the corresponding method `VarHandle.set`

    - #### GET_VOLATILE

          public static final VarHandle.AccessMode GET_VOLATILE

      The access mode whose access is specified by the corresponding method `VarHandle.getVolatile`

    - #### SET_VOLATILE

          public static final VarHandle.AccessMode SET_VOLATILE

      The access mode whose access is specified by the corresponding method `VarHandle.setVolatile`

    - #### GET_ACQUIRE

          public static final VarHandle.AccessMode GET_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.getAcquire`

    - #### SET_RELEASE

          public static final VarHandle.AccessMode SET_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.setRelease`

    - #### GET_OPAQUE

          public static final VarHandle.AccessMode GET_OPAQUE

      The access mode whose access is specified by the corresponding method `VarHandle.getOpaque`

    - #### SET_OPAQUE

          public static final VarHandle.AccessMode SET_OPAQUE

      The access mode whose access is specified by the corresponding method `VarHandle.setOpaque`

    - #### COMPARE_AND_SET

          public static final VarHandle.AccessMode COMPARE_AND_SET

      The access mode whose access is specified by the corresponding method `VarHandle.compareAndSet`

    - #### COMPARE_AND_EXCHANGE

          public static final VarHandle.AccessMode COMPARE_AND_EXCHANGE

      The access mode whose access is specified by the corresponding method `VarHandle.compareAndExchange`

    - #### COMPARE_AND_EXCHANGE_ACQUIRE

          public static final VarHandle.AccessMode COMPARE_AND_EXCHANGE_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.compareAndExchangeAcquire`

    - #### COMPARE_AND_EXCHANGE_RELEASE

          public static final VarHandle.AccessMode COMPARE_AND_EXCHANGE_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.compareAndExchangeRelease`

    - #### WEAK_COMPARE_AND_SET_PLAIN

          public static final VarHandle.AccessMode WEAK_COMPARE_AND_SET_PLAIN

      The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSetPlain`

    - #### WEAK_COMPARE_AND_SET

          public static final VarHandle.AccessMode WEAK_COMPARE_AND_SET

      The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSet`

    - #### WEAK_COMPARE_AND_SET_ACQUIRE

          public static final VarHandle.AccessMode WEAK_COMPARE_AND_SET_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSetAcquire`

    - #### WEAK_COMPARE_AND_SET_RELEASE

          public static final VarHandle.AccessMode WEAK_COMPARE_AND_SET_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.weakCompareAndSetRelease`

    - #### GET_AND_SET

          public static final VarHandle.AccessMode GET_AND_SET

      The access mode whose access is specified by the corresponding method `VarHandle.getAndSet`

    - #### GET_AND_SET_ACQUIRE

          public static final VarHandle.AccessMode GET_AND_SET_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndSetAcquire`

    - #### GET_AND_SET_RELEASE

          public static final VarHandle.AccessMode GET_AND_SET_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndSetRelease`

    - #### GET_AND_ADD

          public static final VarHandle.AccessMode GET_AND_ADD

      The access mode whose access is specified by the corresponding method `VarHandle.getAndAdd`

    - #### GET_AND_ADD_ACQUIRE

          public static final VarHandle.AccessMode GET_AND_ADD_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndAddAcquire`

    - #### GET_AND_ADD_RELEASE

          public static final VarHandle.AccessMode GET_AND_ADD_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndAddRelease`

    - #### GET_AND_BITWISE_OR

          public static final VarHandle.AccessMode GET_AND_BITWISE_OR

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseOr`

    - #### GET_AND_BITWISE_OR_RELEASE

          public static final VarHandle.AccessMode GET_AND_BITWISE_OR_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseOrRelease`

    - #### GET_AND_BITWISE_OR_ACQUIRE

          public static final VarHandle.AccessMode GET_AND_BITWISE_OR_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseOrAcquire`

    - #### GET_AND_BITWISE_AND

          public static final VarHandle.AccessMode GET_AND_BITWISE_AND

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseAnd`

    - #### GET_AND_BITWISE_AND_RELEASE

          public static final VarHandle.AccessMode GET_AND_BITWISE_AND_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseAndRelease`

    - #### GET_AND_BITWISE_AND_ACQUIRE

          public static final VarHandle.AccessMode GET_AND_BITWISE_AND_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseAndAcquire`

    - #### GET_AND_BITWISE_XOR

          public static final VarHandle.AccessMode GET_AND_BITWISE_XOR

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseXor`

    - #### GET_AND_BITWISE_XOR_RELEASE

          public static final VarHandle.AccessMode GET_AND_BITWISE_XOR_RELEASE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseXorRelease`

    - #### GET_AND_BITWISE_XOR_ACQUIRE

          public static final VarHandle.AccessMode GET_AND_BITWISE_XOR_ACQUIRE

      The access mode whose access is specified by the corresponding method `VarHandle.getAndBitwiseXorAcquire`

  - ### Method Detail

    - #### values

          public static VarHandle.AccessMode[] values​()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (VarHandle.AccessMode c : VarHandle.AccessMode.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static VarHandle.AccessMode 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

    - #### methodName

          public String methodName​()

      Returns the `VarHandle` signature-polymorphic method name associated with this `AccessMode` value.
      Returns:
        the signature-polymorphic method name
      See Also:
        `valueFromMethodName(java.lang.String)`

    - #### valueFromMethodName

          public static VarHandle.AccessMode valueFromMethodName​(String methodName)

      Returns the `AccessMode` value associated with the specified `VarHandle` signature-polymorphic method name.
      Parameters:
        `methodName` - the signature-polymorphic method name
      Returns:
        the `AccessMode` value
      Throws:
        `IllegalArgumentException` - if there is no `AccessMode` value associated with method name (indicating the method name does not correspond to a `VarHandle` signature-polymorphic method name).
      See Also:
        `methodName`