This commit is contained in:
Looly 2022-11-24 12:51:13 +08:00
parent 8ae9387336
commit 074ead4f17
2 changed files with 20 additions and 10 deletions

View File

@ -478,7 +478,7 @@ public class ArrayUtil extends PrimitiveArrayUtil {
} }
// 已有数组的元素类型 // 已有数组的元素类型
Class<?> originComponentType = array.getClass().getComponentType(); final Class<?> originComponentType = array.getClass().getComponentType();
Object newEleArr = newElements; Object newEleArr = newElements;
// 如果 已有数组的元素类型是 原始类型则需要转换 新元素数组 为该类型避免ArrayStoreException // 如果 已有数组的元素类型是 原始类型则需要转换 新元素数组 为该类型避免ArrayStoreException
if (originComponentType.isPrimitive()) { if (originComponentType.isPrimitive()) {

View File

@ -579,7 +579,9 @@ public class ArrayUtilTest {
} }
@Test @Test
public void testInsertPrimitive() { public void insertPrimitiveTest() {
// https://gitee.com/dromara/hutool/pulls/874
final boolean[] booleans = new boolean[10]; final boolean[] booleans = new boolean[10];
final byte[] bytes = new byte[10]; final byte[] bytes = new byte[10];
final char[] chars = new char[10]; final char[] chars = new char[10];
@ -589,13 +591,21 @@ public class ArrayUtilTest {
final float[] floats = new float[10]; final float[] floats = new float[10];
final double[] doubles = new double[10]; final double[] doubles = new double[10];
boolean[] insert1 = ArrayUtil.insert(booleans, 0, 0, 1, 2); final boolean[] insert1 = ArrayUtil.insert(booleans, 0, 0, 1, 2);
byte[] insert2 = ArrayUtil.insert(bytes, 0, 1, 2, 3); Assert.assertNotNull(insert1);
char[] insert3 = ArrayUtil.insert(chars, 0, 1, 2, 3); final byte[] insert2 = ArrayUtil.insert(bytes, 0, 1, 2, 3);
short[] insert4 = ArrayUtil.insert(shorts, 0, 1, 2, 3); Assert.assertNotNull(insert2);
int[] insert5 = ArrayUtil.insert(ints, 0, 1, 2, 3); final char[] insert3 = ArrayUtil.insert(chars, 0, 1, 2, 3);
long[] insert6 = ArrayUtil.insert(longs, 0, 1, 2, 3); Assert.assertNotNull(insert3);
float[] insert7 = ArrayUtil.insert(floats, 0, 1, 2, 3); final short[] insert4 = ArrayUtil.insert(shorts, 0, 1, 2, 3);
double[] insert8 = ArrayUtil.insert(doubles, 0, 1, 2, 3); Assert.assertNotNull(insert4);
final int[] insert5 = ArrayUtil.insert(ints, 0, 1, 2, 3);
Assert.assertNotNull(insert5);
final long[] insert6 = ArrayUtil.insert(longs, 0, 1, 2, 3);
Assert.assertNotNull(insert6);
final float[] insert7 = ArrayUtil.insert(floats, 0, 1, 2, 3);
Assert.assertNotNull(insert7);
final double[] insert8 = ArrayUtil.insert(doubles, 0, 1, 2, 3);
Assert.assertNotNull(insert8);
} }
} }