package com.lcjian.library.util.common;
|
|
/**
|
* Object Utils
|
*
|
* @author LCJIAN
|
*/
|
public class ObjectUtils {
|
|
/**
|
* compare two object
|
*
|
* @param actual
|
* @param expected
|
* @return <ul>
|
* <li>if both are null, return true</li>
|
* <li>return actual.{@link Object#equals(Object)}</li>
|
* </ul>
|
*/
|
public static boolean isEquals(Object actual, Object expected) {
|
return actual == expected || (actual == null ? expected == null : actual.equals(expected));
|
}
|
|
/**
|
* compare two object
|
* <ul>
|
* <strong>About result</strong>
|
* <li>if v1 > v2, return 1</li>
|
* <li>if v1 = v2, return 0</li>
|
* <li>if v1 < v2, return -1</li>
|
* </ul>
|
* <ul>
|
* <strong>About rule</strong>
|
* <li>if v1 is null, v2 is null, then return 0</li>
|
* <li>if v1 is null, v2 is not null, then return -1</li>
|
* <li>if v1 is not null, v2 is null, then return 1</li>
|
* <li>return v1.{@link Comparable#compareTo(Object)}</li>
|
* </ul>
|
*
|
* @param v1
|
* @param v2
|
* @return
|
*/
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
public static <V> int compare(V v1, V v2) {
|
return v1 == null ? (v2 == null ? 0 : -1) : (v2 == null ? 1 : ((Comparable) v1).compareTo(v2));
|
}
|
}
|