public final class Enums
extends java.lang.Object
Enum instances.| Modifier and Type | Class and Description |
|---|---|
private static class |
Enums.StringConverter<T extends java.lang.Enum<T>> |
| Modifier and Type | Field and Description |
|---|---|
private static java.util.Map<java.lang.Class<? extends java.lang.Enum<?>>,java.util.Map<java.lang.String,java.lang.ref.WeakReference<? extends java.lang.Enum<?>>>> |
enumConstantCache |
| Modifier | Constructor and Description |
|---|---|
private |
Enums() |
| Modifier and Type | Method and Description |
|---|---|
(package private) static <T extends java.lang.Enum<T>> |
getEnumConstants(java.lang.Class<T> enumClass) |
static java.lang.reflect.Field |
getField(java.lang.Enum<?> enumValue)
Returns the
Field in which enumValue is defined. |
static <T extends java.lang.Enum<T>> |
getIfPresent(java.lang.Class<T> enumClass,
java.lang.String value)
Returns an optional enum constant for the given type, using
Enum.valueOf(java.lang.Class<T>, java.lang.String). |
private static <T extends java.lang.Enum<T>> |
populateCache(java.lang.Class<T> enumClass) |
static <T extends java.lang.Enum<T>> |
stringConverter(java.lang.Class<T> enumClass)
Returns a converter that converts between strings and
enum values of type enumClass using Enum.valueOf(Class, String) and Enum.name(). |
private static final java.util.Map<java.lang.Class<? extends java.lang.Enum<?>>,java.util.Map<java.lang.String,java.lang.ref.WeakReference<? extends java.lang.Enum<?>>>> enumConstantCache
public static java.lang.reflect.Field getField(java.lang.Enum<?> enumValue)
Field in which enumValue is defined. For example, to get the Description annotation on the GOLF constant of enum Sport, use Enums.getField(Sport.GOLF).getAnnotation(Description.class).public static <T extends java.lang.Enum<T>> Optional<T> getIfPresent(java.lang.Class<T> enumClass, java.lang.String value)
Enum.valueOf(java.lang.Class<T>, java.lang.String). If the
constant does not exist, Optional.absent() is returned. A common use case is for parsing
user input or falling back to a default enum constant. For example, Enums.getIfPresent(Country.class, countryInput).or(Country.DEFAULT);private static <T extends java.lang.Enum<T>> java.util.Map<java.lang.String,java.lang.ref.WeakReference<? extends java.lang.Enum<?>>> populateCache(java.lang.Class<T> enumClass)
static <T extends java.lang.Enum<T>> java.util.Map<java.lang.String,java.lang.ref.WeakReference<? extends java.lang.Enum<?>>> getEnumConstants(java.lang.Class<T> enumClass)
public static <T extends java.lang.Enum<T>> Converter<java.lang.String,T> stringConverter(java.lang.Class<T> enumClass)
enum values of type enumClass using Enum.valueOf(Class, String) and Enum.name(). The converter
will throw an IllegalArgumentException if the argument is not the name of any enum
constant in the specified enum.