Предположим, у меня есть метод foo, принимающий 2 Object в качестве параметра.Оба объекта относятся к одному типу, и оба реализуют сопоставимый интерфейс.
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.Ссылки на универсальный тип Comparable должны быть параметризованы
Как я могу реорганизовать свой код, чтобы удалить эти предупреждения?
РЕДАКТИРОВАТЬ: Могу ли я сделать это без изменения сигнатуры метода foo?