com.google.common.base
Class Enums

java.lang.Object
  extended by com.google.common.base.Enums

@GwtCompatible(emulated=true)
@Beta
public final class Enums
extends Object

Utility methods for working with Enum instances.

Since:
9.0
Author:
Steve McKay

Method Summary
static Field getField(Enum<?> enumValue)
          Returns the Field in which enumValue is defined.
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, java.lang.String).
static
<T extends Enum<T>>
Function<String,T>
valueOfFunction(Class<T> enumClass)
          Returns a Function that maps an Enum name to the associated Enum constant.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getField

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

Since:
12.0

valueOfFunction

public static <T extends Enum<T>> Function<String,T> valueOfFunction(Class<T> enumClass)
Returns a Function that maps an Enum name to the associated Enum constant. The Function will return null if the Enum constant does not exist.

Parameters:
enumClass - the Class of the Enum declaring the constant values.

getIfPresent

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, 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);

Since:
12.0


Copyright © 2010-2012. All Rights Reserved.