У меня проблема со следующим кодом:
public static <T> T firstNonNull(@Nullable T first, @Nullable T second) {
return first != null ? first : second;
}
public static Set<String> getStrings() {
return new HashSet<>();
}
public static Set<String> doesNotCompile = firstNonNull(getStrings(), new HashSet<>());
С JDK 8 до обновления 11 этот код компилируется.
С JDK 8 update 20 он больше не компилируется. В последнем утверждении я должен явно указать аргумент типа String
для последнего экземпляра HashSet
.
Мне было интересно, не ошибаюсь ли я в этом коде или регрессия в последнем обновлении JDK.