diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java index 5400f7428..dde36c748 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java @@ -1018,7 +1018,7 @@ public class ArrayUtil extends PrimitiveArrayUtil { * 获取数组中指定多个下标元素值,组成新数组 * * @param 数组元素类型 - * @param array 数组 + * @param array 数组,如果提供为{@code null}则返回{@code null} * @param indexes 下标列表 * @return 结果 */ @@ -1026,10 +1026,13 @@ public class ArrayUtil extends PrimitiveArrayUtil { if (null == array) { return null; } + if(null == indexes){ + return newArray(array.getClass().getComponentType(), 0); + } final T[] result = newArray(array.getClass().getComponentType(), indexes.length); - for (final int i : indexes) { - result[i] = get(array, i); + for (int i = 0; i < indexes.length; i++) { + result[i] = ArrayUtil.get(array, indexes[i]); } return result; } diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java index 5d9d2a798..5c36420c9 100755 --- a/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java @@ -513,4 +513,13 @@ public class ArrayUtilTest { String[] newArr = ArrayUtil.setOrAppend(arr, 0, "Good");// ClassCastException Assert.assertArrayEquals(new String[]{"Good"}, newArr); } + + @Test + public void getAnyTest() { + final String[] a = {"a", "b", "c", "d", "e"}; + final Object o = ArrayUtil.getAny(a, 3, 4); + final String[] resultO = (String[]) o; + final String[] c = {"d", "e"}; + Assert.assertTrue(ArrayUtil.containsAll(c, resultO[0], resultO[1])); + } }