Uses of Class java.lang.Enum (Java SE 11 & JDK 11 )

## Uses of Class
java.lang.Enum

- Packages that use Enum
  Package | Description
  --- | ---
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.lang.invoke | The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.
  java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.

- - ### Uses of Enum in java.lang

    Classes in java.lang with type parameters of type Enum
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Enum<E extends Enum<E>>` | This is the common base class of all Java language enumeration types.

    Methods in java.lang with type parameters of type Enum
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T extends Enum<T>> T` | Enum.`valueOf​(Class<T> enumType, String name)` | Returns the enum constant of the specified enum type with the specified name.

    Methods in java.lang that return types with arguments of type Enum
    Modifier and Type | Method | Description
    --- | --- | ---
    `Class<? extends Enum>` | EnumConstantNotPresentException.`enumType()` | Returns the type of the missing enum constant.

    Constructor parameters in java.lang with type arguments of type Enum
    Constructor | Description
    --- | ---
    `EnumConstantNotPresentException​(Class<? extends Enum> enumType, String constantName)` | Constructs an `EnumConstantNotPresentException` for the specified constant.

  - ### Uses of Enum in java.lang.invoke

    Methods in java.lang.invoke with type parameters of type Enum
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <E extends Enum<E>> E` | ConstantBootstraps.`enumConstant​(MethodHandles.Lookup lookup, String name, Class<E> type)` | Returns an `enum` constant of the type specified by `type` with the name specified by `name`.

  - ### Uses of Enum in java.util

    Classes in java.util with type parameters of type Enum
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `EnumMap<K extends Enum<K>,​V>` | A specialized `Map` implementation for use with enum type keys.
    `class` | `EnumSet<E extends Enum<E>>` | A specialized `Set` implementation for use with enum types.

    Methods in java.util with type parameters of type Enum
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`allOf​(Class<E> elementType)` | Creates an enum set containing all of the elements in the specified element type.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`complementOf​(EnumSet<E> s)` | Creates an enum set with the same element type as the specified enum set, initially containing all the elements of this type that are not contained in the specified set.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`copyOf​(Collection<E> c)` | Creates an enum set initialized from the specified collection.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`copyOf​(EnumSet<E> s)` | Creates an enum set with the same element type as the specified enum set, initially containing the same elements (if any).
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`noneOf​(Class<E> elementType)` | Creates an empty enum set with the specified element type.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E e)` | Creates an enum set initially containing the specified element.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E e1, E e2)` | Creates an enum set initially containing the specified elements.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E first, E... rest)` | Creates an enum set initially containing the specified elements.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E e1, E e2, E e3)` | Creates an enum set initially containing the specified elements.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E e1, E e2, E e3, E e4)` | Creates an enum set initially containing the specified elements.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E e1, E e2, E e3, E e4, E e5)` | Creates an enum set initially containing the specified elements.
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`range​(E from, E to)` | Creates an enum set initially containing all of the elements in the range defined by the two specified endpoints.

    Methods in java.util with parameters of type Enum
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <E extends Enum<E>> EnumSet<E>` | EnumSet.`of​(E first, E... rest)` | Creates an enum set initially containing the specified elements.