You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Cheong Voon Leong (Jira)" <ji...@apache.org> on 2019/10/25 07:10:00 UTC
[jira] [Created] (LANG-1495) Add Overloading Methods To EnumUtils
Cheong Voon Leong created LANG-1495:
---------------------------------------
Summary: Add Overloading Methods To EnumUtils
Key: LANG-1495
URL: https://issues.apache.org/jira/browse/LANG-1495
Project: Commons Lang
Issue Type: Improvement
Reporter: Cheong Voon Leong
I would like to add 2 overloading methods to EnumUtils, getEnum and getEnumIgnoreCase.
Instead of returning null, if not found. In my opinion I think allowing user to set a default result is a better approach or return an Optional.
{noformat}
public static <E extends Enum<E>> E getEnum(final Class<E> enumClass, final String enumName) {
return getEnum(enumClass, enumName, null);
}
public static <E extends Enum<E>> E getEnum(final Class<E> enumClass, final String enumName, E defaultEnum) {
if (enumName == null) {
return defaultEnum;
}
try {
return Enum.valueOf(enumClass, enumName);
} catch (final IllegalArgumentException ex) {
return defaultEnum;
}
}
{noformat}
{code:java}
public static <E extends Enum<E>> E getEnumIgnoreCase(final Class<E> enumClass, final String enumName) {
return getEnumIgnoreCase(enumClass, enumName, null);
}
public static <E extends Enum<E>> E getEnumIgnoreCase(final Class<E> enumClass, final String enumName, E defaultEnum) {
if (enumName == null || !enumClass.isEnum()) {
return defaultEnum;
}
for (final E each : enumClass.getEnumConstants()) {
if (each.name().equalsIgnoreCase(enumName)) {
return each;
}
}
return defaultEnum;
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)