Class Enums


  • @GwtCompatible(emulated=true)
    public final class Enums
    extends java.lang.Object
    Utility methods for working with Enum instances.
    Since:
    9.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  Enums.StringConverter<T extends java.lang.Enum<T>>  
    • Field Summary

      Fields 
      Modifier and Type Field 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  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Enums()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) 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)  
      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>>
      Optional<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>>
      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>>
      Converter<java.lang.String,​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().
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • enumConstantCache

        @GwtIncompatible
        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
    • Constructor Detail

      • Enums

        private Enums()
    • Method Detail

      • getField

        @GwtIncompatible
        public static java.lang.reflect.Field getField​(java.lang.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
      • getIfPresent

        public static <T extends java.lang.Enum<T>> Optional<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). 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
      • populateCache

        @GwtIncompatible
        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)
      • getEnumConstants

        @GwtIncompatible
        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)
      • stringConverter

        public static <T extends java.lang.Enum<T>> Converter<java.lang.String,​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(). The converter will throw an IllegalArgumentException if the argument is not the name of any enum constant in the specified enum.
        Since:
        16.0