@NotNull private static Optional<TypeConversion> findEnumConversion(@NotNull Type target) { if (isEnum(target)) { @SuppressWarnings("rawtypes") Class<? extends Enum> cl = rawType(target).asSubclass(Enum.class); return Optional.ofNullable( TypeConversion.fromNonNullFunction(value -> Enum.valueOf(cl, value.toString()))); } return Optional.empty(); }