• java 检查是否是数组 检查是否是空数组 检查数组是否包含某个元素


        /**
         * Determine whether the given object is an array:
         * either an Object array or a primitive array.
         * @param obj the object to check
         */
        public static boolean isArray(Object obj) {
            return (obj != null && obj.getClass().isArray());
        }
        /**
         * Determine whether the given array is empty:
         * i.e. {@code null} or of zero length.
         * @param array the array to check
         */
        public static boolean isEmpty(Object[] array) {
            return (array == null || array.length == 0);
        }
        /**
         * Check whether the given array contains the given element.
         * @param array the array to check (may be {@code null},
         * in which case the return value will always be {@code false})
         * @param element the element to check for
         * @return whether the element has been found in the given array
         */
        public static boolean containsElement(Object[] array, Object element) {
            if (array == null) {
                return false;
            }
            for (Object arrayEle : array) {
                if (nullSafeEquals(arrayEle, element)) {
                    return true;
                }
            }
            return false;
        }

    两个对象是否相等,包括数数组

        /**
         * Determine if the given objects are equal, returning {@code true}
         * if both are {@code null} or {@code false} if only one is
         * {@code null}.
         * <p>Compares arrays with {@code Arrays.equals}, performing an equality
         * check based on the array elements rather than the array reference.
         * @param o1 first Object to compare
         * @param o2 second Object to compare
         * @return whether the given objects are equal
         * @see java.util.Arrays#equals
         */
        public static boolean nullSafeEquals(Object o1, Object o2) {
            if (o1 == o2) {
                return true;
            }
            if (o1 == null || o2 == null) {
                return false;
            }
            if (o1.equals(o2)) {
                return true;
            }
            if (o1.getClass().isArray() && o2.getClass().isArray()) {
                if (o1 instanceof Object[] && o2 instanceof Object[]) {
                    return Arrays.equals((Object[]) o1, (Object[]) o2);
                }
                if (o1 instanceof boolean[] && o2 instanceof boolean[]) {
                    return Arrays.equals((boolean[]) o1, (boolean[]) o2);
                }
                if (o1 instanceof byte[] && o2 instanceof byte[]) {
                    return Arrays.equals((byte[]) o1, (byte[]) o2);
                }
                if (o1 instanceof char[] && o2 instanceof char[]) {
                    return Arrays.equals((char[]) o1, (char[]) o2);
                }
                if (o1 instanceof double[] && o2 instanceof double[]) {
                    return Arrays.equals((double[]) o1, (double[]) o2);
                }
                if (o1 instanceof float[] && o2 instanceof float[]) {
                    return Arrays.equals((float[]) o1, (float[]) o2);
                }
                if (o1 instanceof int[] && o2 instanceof int[]) {
                    return Arrays.equals((int[]) o1, (int[]) o2);
                }
                if (o1 instanceof long[] && o2 instanceof long[]) {
                    return Arrays.equals((long[]) o1, (long[]) o2);
                }
                if (o1 instanceof short[] && o2 instanceof short[]) {
                    return Arrays.equals((short[]) o1, (short[]) o2);
                }
            }
            return false;
        }

    判断枚举数组中是否包含某个字符串(忽略大小写)

        /**
         * Check whether the given array of enum constants contains a constant with the given name,
         * ignoring case when determining a match.
         * @param enumValues the enum values to check, typically the product of a call to MyEnum.values()
         * @param constant the constant name to find (must not be null or empty string)
         * @return whether the constant has been found in the given array
         */
        public static boolean containsConstant(Enum<?>[] enumValues, String constant) {
            return containsConstant(enumValues, constant, false);
        }

    判断枚举数组中是否包含某个字符串

        /**
         * Check whether the given array of enum constants contains a constant with the given name.
         * @param enumValues the enum values to check, typically the product of a call to MyEnum.values()
         * @param constant the constant name to find (must not be null or empty string)
         * @param caseSensitive whether case is significant in determining a match
         * @return whether the constant has been found in the given array
         */
        public static boolean containsConstant(Enum<?>[] enumValues, String constant, boolean caseSensitive) {
            for (Enum<?> candidate : enumValues) {
                if (caseSensitive ?
                        candidate.toString().equals(constant) :
                        candidate.toString().equalsIgnoreCase(constant)) {
                    return true;
                }
            }
            return false;
        }
        /**
         * Case insensitive alternative to {@link Enum#valueOf(Class, String)}.
         * @param <E> the concrete Enum type
         * @param enumValues the array of all Enum constants in question, usually per Enum.values()
         * @param constant the constant to get the enum value of
         * @throws IllegalArgumentException if the given constant is not found in the given array
         * of enum values. Use {@link #containsConstant(Enum[], String)} as a guard to avoid this exception.
         */
        public static <E extends Enum<?>> E caseInsensitiveValueOf(E[] enumValues, String constant) {
            for (E candidate : enumValues) {
                if (candidate.toString().equalsIgnoreCase(constant)) {
                    return candidate;
                }
            }
            throw new IllegalArgumentException(
                    String.format("constant [%s] does not exist in enum type %s",
                            constant, enumValues.getClass().getComponentType().getName()));
        }
  • 相关阅读:
    有哪些命令行的软件堪称神器?
    [置顶] 《技术大牛养成指南》
    Java 8 集合不完全一览
    [置顶] tcpflow 抓包
    被遗忘的 Logrotate
    [置顶] Every Programmer Should Know These Latency Numbers
    安装 Ubuntu 14.04 之后要做的一些事
    windows.h系统函数
    《葡萄源》
    在 Visual Studio 中创建一个简单的 C# 控制台应用程序
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4027901.html
Copyright © 2020-2023  润新知