Метод ссылок на необработанные типы вреден?

Код ниже содержит ссылку наEnum::name (обратите внимание на отсутствие параметра типа).

public static <T extends Enum<T>> ColumnType<T, String> enumColumn(Class<T> klazz) {
    return simpleColumn((row, label) -> valueOf(klazz, row.getString(label)), Enum::name);
}

public static <T, R> ColumnType<T, R> simpleColumn(BiFunction<JsonObject, String, T> readFromJson,
        Function<T, R> writeToDb) {
 // ...
}

Javac сообщает о предупреждении во время компиляции:

[ПРЕДУПРЕЖДЕНИЕ] обнаружил необработанный тип: java.lang.Enum пропущенные аргументы типа для универсального класса java.lang.Enum

Изменение выражения наEnum<T>::name вызывает предупреждение, чтобы уйти.

Однако идея помечаетEnum<T>::name версия с предупреждением, что:

Явные аргументы типа могут быть выведены

В свою очередь, Eclipse (ECJ) не сообщает о проблемах ни с одной из формул.

Какой из трех подходов является правильным?

С одной стороны, сырые виды довольно противные. Если вы попытаетесь ввести другой аргумент типа, например,Enum<Clause>::name приведет к сбою компиляции, так что это дополнительная защита.

С другой стороны, приведенная выше ссылка эквивалентнаe -> e.name() лямбда, и эта формулировка не требует аргументов типа.

Enviorment:

Java 8u91Сообщество IDEA 15.0.3ECJ 4.5.2

Ответы на вопрос(1)

Ваш ответ на вопрос