Java 1.5を使用するようにアプリケーションを変換していますが、次の方法が見つかりました。
/**
* Compare two Comparables, treat nulls as -infinity.
* @param o1
* @param o2
* @return -1 if o1<o2, 0 if o1==o2, 1 if o1>o2
*/
protected static int nullCompare(Comparable o1, Comparable o2) {
if (o1 == null) {
if (o2 == null) {
return 0;
} else {
return -1;
}
} else if (o2 == null) {
return 1;
} else {
return o1.compareTo(o2);
}
}
理想的には、メソッドに同じタイプの2つのComparableを使用させたいのですが、これをどのように変換することは可能ですか?
私は次のことがうまくいくと思いました:
protected static <T extends Comparable> int nullCompare(T o1, T o2) {
しかし、IntelliJの「未加工のタイプ「java.lang.Comparable」のメンバーとしての「compareTo(T)」へのチェックされていない呼び出し」の警告を取り除くことができませんでした。
return o1.compareTo(o2);