From f368a0a0d249a8cf32ddfbae943ec405c2ec14e2 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 24 Jan 2024 17:36:30 +0800 Subject: [PATCH] fix code --- .../java/org/dromara/hutool/core/array/ArrayUtil.java | 6 ++---- .../org/dromara/hutool/core/array/ArrayUtilTest.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java index 9dd325bea..ee121bb52 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java @@ -990,11 +990,9 @@ public class ArrayUtil extends PrimitiveArrayUtil { final Class componentType = obj.getClass().getComponentType(); // 原始类型 if (componentType.isPrimitive()) { - int length = Array.getLength(obj); + final int length = Array.getLength(obj); result = Array.newInstance(componentType, length); - while (length-- > 0) { - Array.set(result, length, Array.get(obj, length)); - } + copy(obj, result, length); } else { result = ((Object[]) obj).clone(); } diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java index a98ecd48a..407062007 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java @@ -90,6 +90,9 @@ public class ArrayUtilTest { final int[] a = {1, 2, 3}; final int[] clone = ArrayUtil.clone(a); Assertions.assertArrayEquals(a, clone); + + final int[] clone1 = a.clone(); + Assertions.assertArrayEquals(a, clone1); } @Test @@ -606,10 +609,16 @@ public class ArrayUtilTest { void setOrPaddingTest2(){ final String[] arr = new String[0]; final String[] newArr = ArrayUtil.setOrPadding(arr, 2, "Good"); - Console.log(newArr); Assertions.assertArrayEquals(new String[]{null, null, "Good"}, newArr); } + @Test + void setOrPaddingTest3(){ + final String[] arr = new String[0]; + final String[] newArr = ArrayUtil.setOrPadding(arr, 2, "Good", "pad"); + Assertions.assertArrayEquals(new String[]{"pad", "pad", "Good"}, newArr); + } + @Test public void getAnyTest() { final String[] a = {"a", "b", "c", "d", "e"};