package com.iailab.framework.common.util.object;
|
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
|
import java.lang.reflect.Field;
|
import java.util.Arrays;
|
import java.util.function.Consumer;
|
|
/**
|
* Object 工具类
|
*
|
* @author iailab
|
*/
|
public class ObjectUtils {
|
|
/**
|
* 复制对象,并忽略 Id 编号
|
*
|
* @param object 被复制对象
|
* @param consumer 消费者,可以二次编辑被复制对象
|
* @return 复制后的对象
|
*/
|
public static <T> T cloneIgnoreId(T object, Consumer<T> consumer) {
|
T result = ObjectUtil.clone(object);
|
// 忽略 id 编号
|
Field field = ReflectUtil.getField(object.getClass(), "id");
|
if (field != null) {
|
ReflectUtil.setFieldValue(result, field, null);
|
}
|
// 二次编辑
|
if (result != null) {
|
consumer.accept(result);
|
}
|
return result;
|
}
|
|
public static <T extends Comparable<T>> T max(T obj1, T obj2) {
|
if (obj1 == null) {
|
return obj2;
|
}
|
if (obj2 == null) {
|
return obj1;
|
}
|
return obj1.compareTo(obj2) > 0 ? obj1 : obj2;
|
}
|
|
@SafeVarargs
|
public static <T> T defaultIfNull(T... array) {
|
for (T item : array) {
|
if (item != null) {
|
return item;
|
}
|
}
|
return null;
|
}
|
|
@SafeVarargs
|
public static <T> boolean equalsAny(T obj, T... array) {
|
return Arrays.asList(array).contains(obj);
|
}
|
|
}
|