From cd10cd4a5f07b97c2b52338ad5c317bb6c29163e Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Mon, 20 Jul 2020 10:38:36 -0400 Subject: [PATCH] ArrayUtil: fix bug in singletonArray, add copyAndReverse --- .../org/cobbzilla/util/collection/ArrayUtil.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cobbzilla/util/collection/ArrayUtil.java b/src/main/java/org/cobbzilla/util/collection/ArrayUtil.java index 1fc2f3c..a61d09b 100644 --- a/src/main/java/org/cobbzilla/util/collection/ArrayUtil.java +++ b/src/main/java/org/cobbzilla/util/collection/ArrayUtil.java @@ -1,5 +1,6 @@ package org.cobbzilla.util.collection; +import org.apache.commons.lang.ArrayUtils; import org.cobbzilla.util.string.StringUtil; import java.lang.reflect.Array; @@ -7,7 +8,6 @@ import java.util.*; import static org.cobbzilla.util.daemon.ZillaRuntime.die; import static org.cobbzilla.util.daemon.ZillaRuntime.empty; -import static org.cobbzilla.util.reflect.ReflectionUtil.arrayClass; public class ArrayUtil { @@ -147,8 +147,17 @@ public class ArrayUtil { public static T[] singletonArray (T thing) { return singletonArray(thing, (Class) thing.getClass()); } public static T[] singletonArray (T thing, Class clazz) { - final T[] array = (T[]) Array.newInstance(arrayClass(clazz), 1); + final T[] array = (T[]) Array.newInstance(clazz, 1); array[0] = thing; return array; } + + public static T[] copyAndReverse(T[] array, Class clazz) { + if (array == null) return null; + final T[] reversed = (T[]) Array.newInstance(clazz, array.length); + System.arraycopy(array, 0, reversed, 0, array.length); + ArrayUtils.reverse(reversed); + return reversed; + } + }