CompareUtil.java
package gov.usgs.earthquake.util;
/**
* Utility class for comparing potentially null values.
*/
public class CompareUtil {
/**
* A method to simplify comparison of two values, either of which may be null.
*
* For purposes of this comparison, null values are > non-null values.
*
* @param a value to compare
* @param b value to compare
* @param <T> type
* @return -1, if a is not null and b is null; 0, if a is null and b is null; 1,
* if a is null and b is not null; otherwise, a.compareTo(b).
*/
public static <T extends Comparable<T>> int nullSafeCompare(final T a, final T b) {
if (a == null && b != null) {
// null > real values
return 1;
} else if (a != null && b == null) {
// real values < null
return -1;
} else if (a == null && b == null) {
// null == null
return 0;
} else {
// not null, use object compareTo
return a.compareTo(b);
}
}
}