@SuppressWarnings("unchecked")
  private int unsafeCompare(Object k1, Object k2) {
    Comparator<? super K> comparator = comparator();
    if (comparator == null) {
      return ((Comparable<Object>) k1).compareTo(k2);
    } else {
      return ((Comparator<Object>) comparator).compare(k1, k2);
    }
  }
@SuppressWarnings("unchecked")
  private int unsafeCompare(Object k1, Object k2) {
    Comparator<? super K> comparator = comparator();
    if (comparator == null) {
      return ((Comparable<Object>) k1).compareTo(k2);
    } else {
      return ((Comparator<Object>) comparator).compare(k1, k2);
    }
  }
@ SuppressWarnings ( "unchecked" ) private int unsafeCompare ( Object k1 , Object k2 ) { Comparator < ? super K > comparator = comparator ( ) ; if ( comparator == null ) { return ( ( Comparable < Object > ) k1 ) . compareTo ( k2 ) ; } else { return ( ( Comparator < Object > ) comparator ) . compare ( k1 , k2 ) ; } }
unsafe, but worst case is a CCE is thrown, which callers will be expecting
unsafe but worst case is a CCE is thrown which callers will be expecting