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

cn.buli_home.utils.common.ArrayUtils Maven / Gradle / Ivy

There is a newer version: 0.3.1
Show newest version
package cn.buli_home.utils.common;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Objects;

public class ArrayUtils extends BasicArrayUtils {

    /**
     * 数组是否为空
     *
     * @param    数组元素类型
     * @param array 数组
     * @return 是否为空
     */
    public static  boolean isEmpty(T[] array) {
        return Objects.isNull(array) || array.length == 0;
    }

    /**
     * 如果给定数组为空,返回默认数组
     *
     * @param           数组元素类型
     * @param array        数组
     * @param defaultArray 默认数组
     * @return 非空(empty)的原数组或默认数组
     * 
     */
    public static  T[] defaultIfEmpty(T[] array, T[] defaultArray) {
        return isEmpty(array) ? defaultArray : array;
    }

    /**
     * 数组是否为空
* 此方法会匹配单一对象,如果此对象为{@code null}则返回true
* 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false
* 如果此对象为数组对象,数组长度大于0情况下返回false,否则返回true * * @param array 数组 * @return 是否为空 */ public static boolean isEmpty(Object array) { if (Objects.nonNull(array)) { if (isArray(array)) { return 0 == Array.getLength(array); } return false; } return true; } /** * 数组是否为非空 * * @param 数组元素类型 * @param array 数组 * @return 是否为非空 */ public static boolean isNotEmpty(T[] array) { return (Objects.nonNull(array) && array.length != 0); } /** * 数组是否为非空
* 此方法会匹配单一对象,如果此对象为{@code null}则返回false
* 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回true
* 如果此对象为数组对象,数组长度大于0情况下返回true,否则返回false * * @param array 数组 * @return 是否为非空 */ public static boolean isNotEmpty(Object array) { return !isEmpty(array); } /** * 是否包含{@code null}元素 * * @param 数组元素类型 * @param array 被检查的数组 * @return 是否包含{@code null}元素 * */ @SuppressWarnings("unchecked") public static boolean hasNull(T... array) { if (isNotEmpty(array)) { for (T element : array) { if (Objects.isNull(element)) { return true; } } } return Objects.isNull(array); } /** * 对象是否为数组对象 * * @param obj 对象 * @return 是否为数组对象,如果为{@code null} 返回false */ public static boolean isArray(Object obj) { return Objects.nonNull(obj) && obj.getClass().isArray(); } /** * 数组或集合转String * * @param obj 集合或数组对象 * @return 数组字符串,与集合转字符串格式相同 */ public static String toString(Object obj) { if (null == obj) { return null; } if (obj instanceof long[]) { return Arrays.toString((long[]) obj); } else if (obj instanceof int[]) { return Arrays.toString((int[]) obj); } else if (obj instanceof short[]) { return Arrays.toString((short[]) obj); } else if (obj instanceof char[]) { return Arrays.toString((char[]) obj); } else if (obj instanceof byte[]) { return Arrays.toString((byte[]) obj); } else if (obj instanceof boolean[]) { return Arrays.toString((boolean[]) obj); } else if (obj instanceof float[]) { return Arrays.toString((float[]) obj); } else if (obj instanceof double[]) { return Arrays.toString((double[]) obj); } else if (ArrayUtils.isArray(obj)) { // 对象数组 try { return Arrays.deepToString((Object[]) obj); } catch (Exception ignore) { //ignore } } return obj.toString(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy