对比新文件 |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |