假设我有一个名为 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
}
前 2 个警告是:
Comparable 是原始类型。对泛型 Comparable 的引用应该被参数化
最后的警告:
类型安全:方法 compareTo(Object) 属于原始类型 Comparable。对泛型 Comparable 的引用应该被参数化
我如何重构我的代码以删除这些警告?
编辑:我可以在不更改 foo 方法签名的情况下做到这一点吗?