From 73bca54b543826e400bd46e5a635aa38f36940bc Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 6 Jun 2022 01:24:03 +0800 Subject: [PATCH] fix bug --- .../src/main/java/cn/hutool/core/util/ArrayUtil.java | 5 +++++ .../src/test/java/cn/hutool/core/util/ArrayUtilTest.java | 7 +++++++ 2 files changed, 12 insertions(+) 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 5ebc60786..83060fb9d 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 @@ -348,6 +348,11 @@ public class ArrayUtil extends PrimitiveArrayUtil { Array.set(buffer, index, value); return buffer; } else { + if(ArrayUtil.isEmpty(buffer)){ + final T[] values = newArray(value.getClass(), 1); + values[0] = value; + return append(buffer, values); + } return append(buffer, value); } } 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 0b4a96ff1..5656f92df 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 @@ -527,4 +527,11 @@ public class ArrayUtilTest { result = ArrayUtil.replace(g, 0, h); Assert.assertArrayEquals(g, result); } + + @Test + public void setOrAppendTest(){ + String[] arr = new String[0]; + String[] newArr = ArrayUtil.setOrAppend(arr, 0, "Good");// ClassCastException + Assert.assertArrayEquals(new String[]{"Good"}, newArr); + } }