Предположим, у меня есть метод под названием 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
}
Первые 2 предупреждения:
Comparable - это сырой тип. Ссылки на общий тип Comparable должны быть параметризованы.
Последнее предупреждение:
Безопасность типов: метод compareTo (Object) принадлежит к необработанному типу Comparable. Ссылки на общий тип Comparable должны быть параметризованы.
Как мне провести рефакторинг своего кода, чтобы убрать эти предупреждения?
РЕДАКТИРОВАТЬ: Могу ли я сделать это, не меняя подпись метода foo?
Comparable is a raw type
- person oliholz   schedule 10.08.2011