dengzedong
2024-12-24 aa0382e44311f9f7e62a688c8fcaa9c69a512e0f
提交 | 用户 | 时间
e7c126 1 package com.iailab.framework.common.util.object;
H 2
3 import cn.hutool.core.util.ObjectUtil;
4 import cn.hutool.core.util.ReflectUtil;
5
6 import java.lang.reflect.Field;
7 import java.util.Arrays;
8 import java.util.function.Consumer;
9
10 /**
11  * Object 工具类
12  *
13  * @author iailab
14  */
15 public class ObjectUtils {
16
17     /**
18      * 复制对象,并忽略 Id 编号
19      *
20      * @param object 被复制对象
21      * @param consumer 消费者,可以二次编辑被复制对象
22      * @return 复制后的对象
23      */
24     public static <T> T cloneIgnoreId(T object, Consumer<T> consumer) {
25         T result = ObjectUtil.clone(object);
26         // 忽略 id 编号
27         Field field = ReflectUtil.getField(object.getClass(), "id");
28         if (field != null) {
29             ReflectUtil.setFieldValue(result, field, null);
30         }
31         // 二次编辑
32         if (result != null) {
33             consumer.accept(result);
34         }
35         return result;
36     }
37
38     public static <T extends Comparable<T>> T max(T obj1, T obj2) {
39         if (obj1 == null) {
40             return obj2;
41         }
42         if (obj2 == null) {
43             return obj1;
44         }
45         return obj1.compareTo(obj2) > 0 ? obj1 : obj2;
46     }
47
48     @SafeVarargs
49     public static <T> T defaultIfNull(T... array) {
50         for (T item : array) {
51             if (item != null) {
52                 return item;
53             }
54         }
55         return null;
56     }
57
58     @SafeVarargs
59     public static <T> boolean equalsAny(T obj, T... array) {
60         return Arrays.asList(array).contains(obj);
61     }
62
63 }