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

net.lulihu.ObjectKit.ObjectKit Maven / Gradle / Ivy

package net.lulihu.ObjectKit;

import net.lulihu.exception.ToolBoxException;

import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

/**
 * 一些通用的函数
 */
public class ObjectKit {

    private ObjectKit() {
    }


    /**
     * 如果为空, 则调用默认值 
* 空参数的定义如下
* 1、对象不为null
* 2、String 不为"" or " "
* 3、List,Set,Map,Object[],int[],long[] 长度大于0 * * @param obj 被判断的参数 * @param defaultValue 为空默认值 */ public static Object nullToDefault(Object obj, Object defaultValue) { return hasEmpty(obj) ? defaultValue : obj; } /** * 比较两个对象是否相等。
* 相同的条件有两个,满足其一即可:
* 1. obj1 == null && obj2 == null; 2. obj1.equals(obj2) * * @param obj1 对象1 * @param obj2 对象2 * @return 是否相等 */ public static boolean equals(Object obj1, Object obj2) { return Objects.equals(obj1, obj2); } /** * 对象是否不为空 *

* 空参数的定义如下
* 1、String 不为"" or " "
* 2、List,Set,Map,Object[],int[],long[] 长度大于0 * * @param o 校验对象 * @return 为空则为false 反之true */ public static boolean hasNotEmpty(Object o) { return !hasEmpty(o); } /** * 对象是否为空 *

* 空参数的定义如下
* 1、对象不为null * 2、String 不为"" or " "
* 3、List,Set,Map,Object[],int[],long[] 长度大于0 * * @param o 校验对象 * @return 为空则为true 反之false */ @SuppressWarnings("rawtypes") public static boolean hasEmpty(Object o) { if (o == null) return true; if (o instanceof String) { return o.toString().equals(""); } else if (o instanceof List) { return ((List) o).size() == 0; } else if (o instanceof Map) { return ((Map) o).size() == 0; } else if (o instanceof Set) { return ((Set) o).size() == 0; } else if (o instanceof Object[]) { return ((Object[]) o).length == 0; } else if (o instanceof int[]) { return ((int[]) o).length == 0; } else if (o instanceof long[]) { return ((long[]) o).length == 0; } else if (o instanceof byte[]) { return ((byte[]) o).length == 0; } else if (o instanceof short[]) { return ((short[]) o).length == 0; } else if (o instanceof boolean[]) { return ((boolean[]) o).length == 0; } else if (o instanceof char[]) { return ((char[]) o).length == 0; } else if (o instanceof double[]) { return ((double[]) o).length == 0; } else if (o instanceof float[]) { return ((float[]) o).length == 0; } return false; } /** * 获取基本数据类型的默认值 包含String和void * * @param clazz 数据类型 * @return 对应的默认值 */ public static Object primitiveDefaultValue(final Class clazz) { if (!BeanKit.isPrimitive(clazz)) throw new ToolBoxException("类型【{}】不是基本数据类型", clazz); Map, Object> primitiveDefaultValueMap = BasicType.primitiveDefaultValueMap; if (primitiveDefaultValueMap.containsKey(clazz)) return primitiveDefaultValueMap.get(clazz); return BasicType.wrapperPrimitiveDefaultValueMap.get(clazz); } /** * 根据对象类型获取对象的默认值 * * @param clazz 对象类型 * @return 默认值 */ public static Object getDefaultValue(final Class clazz) { if (BeanKit.isPrimitive(clazz)) { return primitiveDefaultValue(clazz); } return ClassKit.newInstanceConstructorsDefaultValue(clazz); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy