All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.penglecode.codeforce.common.util.ObjectUtils Maven / Gradle / Ivy

The newest version!
package com.penglecode.codeforce.common.util;

import java.util.function.Supplier;

/**
 * 有关object的工具类
 *
 * @author pengpeng
 * @version 1.0
 */
public class ObjectUtils extends org.springframework.util.ObjectUtils {

	private ObjectUtils() {}

	/**
	 * 

如果object为null则返回defaultValue

* * @param object * @param defaultValue * @return */ public static T defaultIfNull(T object, T defaultValue) { return object != null ? object : defaultValue; } /** *

如果object为null则返回defaultValue

* * @param object * @param defaultValue * @return */ public static T defaultIfNull(T object, Supplier defaultValue) { if(object == null) { return defaultValue != null ? defaultValue.get() : null; } return object; } /** *

通过==或equals方法来比较object1与object2是否相等

* * @param object1 * @param object2 * @return */ public static boolean equals(Object object1, Object object2) { if (object1 == object2) { return true; } if (object1 == null || object2 == null) { return false; } return object1.equals(object2); } /** *

Null-safe 调用Object.toString()方法

* * @param object * @return */ public static String toString(Object object) { return object == null ? "" : object.toString(); } /** *

Null-safe 找出一组对象中的最小值

* * @param values * @return 如果所有元素都不为空则返回不为null的&最小的那个元素,否则返回null */ @SafeVarargs public static > T min(T... values) { T result = null; if (values != null) { for (T value : values) { if (compare(value, result, true) < 0) { result = value; } } } return result; } /** *

Null-safe 找出一组对象中的最大值

* * @param values * @return 如果所有元素都不为空则返回不为null的&最大的那个元素,否则返回null */ @SafeVarargs public static > T max(T... values) { T result = null; if (values != null) { for (T value : values) { if (compare(value, result, false) > 0) { result = value; } } } return result; } /** *

Null-safe 比较两个对象 * (如果c1、c2中存在null值,则认为其为最小值)

* * @param c1 - 第一个比较参数,可能为空 * @param c2 - 第二个比较参数,可能为空 * @return - 负数:c1 > c2,0:c1 = c2,正数c1 > c2 */ public static > int compare(T c1, T c2) { return compare(c1, c2, false); } /** *

Null-safe 比较两个对象

* * @param c1 - 第一个比较参数,可能为空 * @param c2 - 第二个比较参数,可能为空 * @param nullGreater - 如果为true则认为null是较大的 * @return - 负数:c1 > c2,0:c1 = c2,正数c1 > c2 */ public static > int compare(T c1, T c2, boolean nullGreater) { if (c1 == c2) { return 0; } else if (c1 == null) { return nullGreater ? 1 : -1; } else if (c2 == null) { return nullGreater ? -1 : 1; } return c1.compareTo(c2); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy