Я полагаю, что для интерфейса есть веская причина требовать от вас возврата Comparator Вы можете вернуть Comparator без параметра типа (который на самом деле не является универсальным ), но есть вероятность, что он где-нибудь сломается.
Что вы могли бы сделать:
Реализация универсального класса (=, который сам принимает параметр типа) и возвращает универсальный компаратор.
public MyImpl<E> implements SomeInterface {
...
public Comparator<E> createComparator() {
...
}
}
Игнорирование (подавление) предупреждений, хотя это может сработать в вашей ситуации, только в долгосрочной перспективе вызовет проблемы и, вероятно, не лучший путь.