Предположим, у меня есть метод с именем foo, принимающий в качестве параметра 2 объекта. Оба объекта имеют один и тот же тип, и оба реализуют сопоставимый интерфейс.
void foo(Object first, Object second){
if (!first.getClass().isInstance(second)) //first and second of the same type
return;
Comparable firstComparable = (Comparable)first; //WARNING
Comparable secondComparable = (Comparable)second; //WARNING
int diff = firstComparable.compareTo(secondComparable); //WARNING
}
Первые два предупреждения:
Comparable - это необработанный тип. Ссылки на общий тип Comparable. должен быть параметризован
Последнее предупреждение:
Безопасность типа: метод compareTo (Object) принадлежит к необработанному типу Сопоставимо. Ссылки на общий тип Comparable должны быть параметризованный
Как я могу провести рефакторинг моего кода, чтобы удалить эти предупреждения?
РЕДАКТИРОВАТЬ: Могу ли я сделать это, не меняя сигнатуру метода foo?