Я получаю это предупреждение компилятора.
Это мой класс с использованным интерфейсом и методом (другие сотрудники пропущены):
public class Controller extends BaseController {
//interface
public interface MyInterface<T extends Iterable<? super T>> {
List<T> getList();
}
//method call
updateJoinTable(request.getProductGrades().size(), instance::getProductGrades);
//method
private static void updateJoinTable(Integer LastValidElement, MyInterface myInterface) {
myInterface.getList().subList(LastValidElement, myInterface.getList().size())
.forEach(i ->myInterface.getList().remove(i));
}
}
Последняя часть с forEach вызывает предупреждение.
Теперь сначала код был без:
<T extends Iterable<? super T>>
но я видел много подобных случаев здесь, на SO, в основном с сопоставимыми, и, прочитав решения, я понял, что проблема в том, что мои универсальные типы связаны с типом, который сам по себе имеет тип, но у меня нет Он предоставлен, так что он сырой - тогда я добавил эту строку в интерфейс и ожидал, что предупреждение исчезнет. Но это все еще там.
У вас есть идеи, что мне делать, чтобы избавиться от этого?