code: public static <T> int safeCompare(Comparable<T> d1, T d2) {
          if (d1 != null && d2 != null) {
              return d1.compareTo(d2);
          } else if (d1 == null && d2 != null) {
              return -1;
          } else if (d1 != null && d2 == null) {
              return 1;
          } else {
              return 0;
          }
      }
docs: Does a safe comparison of two {@link Comparable} objects accounting for nulls
  
  @param d1
  First object
  @param d2
  Second object
  @return A positive number if the object double is larger, a negative number if the second
  object is larger, or 0 if they are equal. Null is considered less than any non-null
  value