class NullSafeComparator<T> implements Comparator<T> {

  @Override
  public int compare(T o1, T o2) {<FILL_FUNCTION_BODY>}

  protected abstract int compareNonNull(T o1, T o2);
}

    if (o1 == o2) return 0;
    if (o1 == null) return -1;
    if (o2 == null) return 1;

    return compareNonNull(o1, o2);
  
<no_super_class>