Java: la suppression de “Comparable est une crue de type” avertissement

Supposons que j'ai une méthode appelée foo prendre 2 Objet comme paramètre. Les deux objets sont de même type et de même les deux implémente l'interface comparable.

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
}

Les 2 premières avertissement:

Comparables est une crue de type. Références de type générique Comparable
doit être paramétrée

La dernière mise en garde:

Type de sécurité: La méthode compareTo(Object) appartient à la crue de type
Comparables. Références de type générique Comparable devrait être
paramétrable

Comment pourrais-je refactoriser mon code afin de supprimer ces avertissements?

EDIT:
Puis-je le faire sans changer de foo signature de la méthode?

prenez pas de changement de la fonction du paramètre de l'objet de comparable ?
provoquer le même Avertissement Comparable is a raw type
voulez-vous vous débarrasser de l'avertissement ? Même si vous utilisez des médicaments génériques néanmoins, il n'est qu'un sucre syntaxique et le casting aura de toute façon lieu.Pourquoi ne pas tout simplement supprimer les avertissements ?
c'était juste de la curiosité. Même avec l'avertissement que le code fonctionne très bien.

OriginalL'auteur Heisenbug | 2011-08-10