From 56abd26590328fa8fe78a9674b8336b976659392 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 1 Sep 2023 11:30:48 +0800 Subject: [PATCH] fix code --- .../dromara/hutool/core/array/ArrayUtil.java | 18 ++++++++ .../hutool/core/array/ArrayWrapper.java | 46 ++++++++++++++++++- .../dromara/hutool/core/bean/BeanPath.java | 1 + .../dromara/hutool/core/bean/BeanUtil.java | 5 +- .../hutool/core/reflect/FieldUtil.java | 2 +- .../hutool/core/array/ArrayUtilTest.java | 9 ++++ .../hutool/core/bean/BeanPathTest.java | 9 ++++ 7 files changed, 84 insertions(+), 6 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 94561ca94..6fd81599f 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 @@ -21,6 +21,7 @@ import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.exception.ExceptionUtil; import org.dromara.hutool.core.exception.HutoolException; import org.dromara.hutool.core.lang.Assert; +import org.dromara.hutool.core.lang.Console; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.text.StrJoiner; import org.dromara.hutool.core.text.StrUtil; @@ -553,6 +554,23 @@ public class ArrayUtil extends PrimitiveArrayUtil { return ArrayWrapper.of(array).setOrAppend(index, value).getRaw(); } + /** + * 将元素值设置为数组的某个位置,当index小于数组的长度时,替换指定位置的值,否则追加{@code null}或{@code 0}直到到达index后,设置值 + * + * @param 数组类型 + * @param array 已有数组 + * @param index 位置,大于等于长度则追加,否则替换 + * @param value 新值 + * @return 新数组或原有数组 + * @since 6.0.0 + */ + public static A setOrPadding(final A array, final int index, final Object value) { + if (index == 0 && isEmpty(array)) { + return ofArray(value, null == array ? null : array.getClass().getComponentType()); + } + return ArrayWrapper.of(array).setOrPadding(index, value).getRaw(); + } + /** * 从数组中的指定位置开始,按顺序使用新元素替换旧元素
*