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);
- }
- }
- }