### Question:
EnumHelper { @Nonnull public static String getEnumID (@Nonnull final Enum <?> aEnum) { return aEnum.getClass ().getName () + '.' + aEnum.name (); } private  EnumHelper(); @Nullable static ENUMTYPE findFirst(@Nonnull final Class <ENUMTYPE> aClass,
                                                                       @Nullable final Predicate <? super ENUMTYPE> aFilter); @Nullable static ENUMTYPE findFirst(@Nonnull final Class <ENUMTYPE> aClass,
                                                                       @Nullable final Predicate <? super ENUMTYPE> aFilter,
                                                                       @Nullable final ENUMTYPE eDefault); @Nonnull @ReturnsMutableCopy static ICommonsList <ENUMTYPE> getAll(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                   @Nullable final Predicate <? super ENUMTYPE> aFilter); @Nullable static ENUMTYPE getFromIDOrNull(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                         @Nullable final KEYTYPE aID); @Nullable static ENUMTYPE getFromIDOrDefault(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                            @Nullable final KEYTYPE aID,
                                                                                                            @Nullable final ENUMTYPE eDefault); @Nonnull static ENUMTYPE getFromIDOrThrow(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                          @Nullable final KEYTYPE aID); @Nullable static ENUMTYPE getFromIDCaseInsensitiveOrNull(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                              @Nullable final String sID); @Nullable static ENUMTYPE getFromIDCaseInsensitiveOrDefault(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                                 @Nullable final String sID,
                                                                                                                 @Nullable final ENUMTYPE eDefault); @Nonnull static ENUMTYPE getFromIDCaseInsensitiveOrThrow(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                               @Nullable final String sID); @Nullable static ENUMTYPE getFromIDOrNull(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                         final int nID); @Nullable static ENUMTYPE getFromIDOrDefault(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                            final int nID,
                                                                                            @Nullable final ENUMTYPE eDefault); @Nonnull static ENUMTYPE getFromIDOrThrow(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                          final int nID); @Nullable static ENUMTYPE getFromNameOrNull(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                          @Nullable final String sName); @Nullable static ENUMTYPE getFromNameOrDefault(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                             @Nullable final String sName,
                                                                                             @Nullable final ENUMTYPE eDefault); @Nonnull static ENUMTYPE getFromNameOrThrow(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                           @Nullable final String sName); @Nullable static ENUMTYPE getFromNameCaseInsensitiveOrNull(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                         @Nullable final String sName); @Nullable static ENUMTYPE getFromNameCaseInsensitiveOrDefault(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                            @Nullable final String sName,
                                                                                                            @Nullable final ENUMTYPE eDefault); @Nonnull static ENUMTYPE getFromNameCaseInsensitiveOrThrow(@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                          @Nullable final String sName); @Nonnull static String getEnumID(@Nonnull final Enum <?> aEnum); @Nonnull static EChange clearCache();  }### Answer:
@Test public void testGetEnumID () { assertEquals ("com.helger.commons.compare.ESortOrder.ASCENDING", EnumHelper.getEnumID (ESortOrder.ASCENDING)); assertEquals ("com.helger.commons.lang.EnumHelperTest$EHasSimpleID.A", EnumHelper.getEnumID (EHasSimpleID.A)); try { EnumHelper.getEnumID (null); fail (); } catch (final NullPointerException ex) {} }