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