@CheckReturnValue @GwtCompatible(emulated=true) @Beta public final class Enums extends Object
Utility methods for working with Enum instances.
| Modifier and Type | Method and Description |
|---|---|
static Field |
getField(Enum<?> enumValue)
Returns the
Field in which enumValue is defined. |
static <T extends Enum<T>> |
getIfPresent(Class<T> enumClass,
String value)
Returns an optional enum constant for the given type, using
Enum.valueOf(java.lang.Class<T>, java.lang.String). |
static <T extends Enum<T>> |
stringConverter(Class<T> enumClass)
Returns a converter that converts between strings and
enum values of type enumClass using Enum.valueOf(Class, String) and Enum.name(). |
@GwtIncompatible(value="reflection") public static Field getField(Enum<?> enumValue)
Returns the 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 Enum<T>> Optional<T> getIfPresent(Class<T> enumClass, String value)
Returns an optional enum constant for the given type, using Enum.valueOf(java.lang.Class<T>, java.lang.String). If the constant does not exist, Optional.empty() 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);
public static <T extends Enum<T>> Converter<String,T> stringConverter(Class<T> enumClass)
Returns a converter that converts between strings and 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.