@SafeVarargs
    public static <T extends Comparable<? super T>> T min(final T... values) {
        T result = null;
        if (values != null) {
            for (final T value : values) {
                if (compare(value, result, true) < 0) {
                    result = value;
                }
            }
        }
        return result;
    }
@ SafeVarargs public static < T extends Comparable < ? super T > > T min ( final T ... values ) { T result = null ; if ( values != null ) { for ( final T value : values ) { if ( compare ( value , result , true ) < 0 ) { result = value ; } } } return result ; }
<p>Null safe comparison of Comparables.</p>

@param <T> type of the values processed by this method
@param values the set of comparable values, may be null
@return
<ul>
<li>If any objects are non-null and unequal, the lesser object.
<li>If all objects are non-null and equal, the first.
<li>If any of the comparables are null, the lesser of the non-null objects.
<li>If all the comparables are null, null is returned.
</ul>