Вы можете написать вспомогательный метод для захвата типа "T", который удовлетворяет требованию Enum:
private <T extends Enum<T>> T helper(Class<?> type, String example) {
return Enum.valueOf((Class<T>)type, example);
}
это должно быть только одно предупреждение
и затем вы можете использовать его как
else if (Enum.class.isAssignableFrom(type))
setValue(contract, field, helper(type, example));
Редактировать: хорошо, тогда как насчет:
private <T extends Enum<T>> Object helper(Class<?> type, String example) {
return Enum.valueOf((Class<T>)type, example);
}