@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.