2つのオブジェクトをパラメーターとして取るfooというメソッドがあるとします。両方のオブジェクトは同じタイプであり、どちらも同等のインターフェースを実装しています。
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はrawタイプです。ジェネリック型Comparableへの参照はパラメーター化する必要があります
最後の警告:
型安全性:メソッドcompareTo(Object)は、raw型Comparableに属しています。ジェネリック型Comparableへの参照はパラメーター化する必要があります
これらの警告を削除するために、コードをリファクタリングするにはどうすればよいですか?
編集:fooメソッドの署名を変更せずにそれを行うことはできますか?