내가 자바 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);
}
}
가 이상적으로이 방법은 같은 종류의 두 비교 대상을하고 싶습니다를 가능이를 변환하는 방법 ?
protected static <T extends Comparable> int nullCompare(T o1, T o2) {
하지만이 원시 형의 멤버로 '은 compareTo (T)'인 IntelliJ "에 체크되지 않은 호출에 경고를 제거하는 데 실패했다 '자바 :
은 내가 트릭을 할 것입니다 다음과 같은 생각return o1.compareTo(o2);
아아! 나는 그것이 가까이에 있었다는 것을 믿을 수 없다. –
이것은 모두를 위로 여행한다. – jodonnell
T가 Comparable 인게 맞습니까? T가 비슷한 >이 더 정확할 것 같습니다? –
cletus