I am migrating a java application from Java7 to Java8. The existing code compiles and runs fine with Java7 but not with Java8. It is basically giving me this ERROR:
incompatible types: inference variable E has incompatible upper bounds java.lang.Enum
Below is the method which results in Compilation Error:
public static <E extends Enum<E>> E checkAndConvertEnum(Class<E> enumClass, String valueToConvert)
{
checkMandatory(Class.class, enumClass);
Pair<E, ClassB> value= checkAndConvertEnumInternally(enumClass, valueToConvert);
}
private static <E extends Enum<E>> Pair<E, ClassB> internCheckAndConvertEnum(Class<E> enumClass,
String valueToConvert) {
if (null != valueToConvert) {
// --- First try it with the enum-literal
try {
E result = Enum.valueOf(enumClass, valueToConvert);
if (null != result) {
return new Pair<E, ClassB>(result, null);
} // --- end_if
} catch (Exception ignore) {
}
return new Pair<E, ClassB>(null, new Incident(GlobalErrCodes.CANNOT_CONVERT_ENUM,
enumClass.getSimpleName(), valueToConvert));
}
Any help in this regard would help. Thanks in Advance!