package com.xly.util; import cn.hutool.core.util.ObjectUtil; import com.xly.entity.ParamRule; import java.lang.reflect.Array; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; public class Validator { // 判断对象是否有效(非0,非空字符串,非空数组/集合) public static boolean isValid(Object obj) { if (obj == null) return false; // 数值 if (obj instanceof Number) { return ((Number) obj).doubleValue() != 0; } // 数组 if (obj.getClass().isArray()) { return Array.getLength(obj) > 0; } // 集合 if (obj instanceof Collection) { return !((Collection) obj).isEmpty(); } // Map if (obj instanceof Map) { return !((Map) obj).isEmpty(); } return ObjectUtil.isNotEmpty(obj); } /*** * @Author 钱豹 * @Date 0:58 2026/7/2 * @Param [source, one] * @return java.util.List * @Description 去重 **/ public static List deduplicateByParamValue(List source) { if (source == null || source.isEmpty()) { return new ArrayList<>(); } return source.stream() .collect(Collectors.toMap( rule -> Arrays.asList( rule.getSParamValue(), rule.getSDynamicParam(), rule.getSDynamicParamName() ), Function.identity(), (existing, replacement) -> existing // 保留第一个 )) .values() .stream() .collect(Collectors.toList()); } }