Browse Source

ArrayUtil: fix bug in singletonArray, add copyAndReverse

tags/2.0.1
Jonathan Cobb 4 years ago
parent
commit
cd10cd4a5f
1 changed files with 11 additions and 2 deletions
  1. +11
    -2
      src/main/java/org/cobbzilla/util/collection/ArrayUtil.java

+ 11
- 2
src/main/java/org/cobbzilla/util/collection/ArrayUtil.java View File

@@ -1,5 +1,6 @@
package org.cobbzilla.util.collection; package org.cobbzilla.util.collection;


import org.apache.commons.lang.ArrayUtils;
import org.cobbzilla.util.string.StringUtil; import org.cobbzilla.util.string.StringUtil;


import java.lang.reflect.Array; 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.die;
import static org.cobbzilla.util.daemon.ZillaRuntime.empty; import static org.cobbzilla.util.daemon.ZillaRuntime.empty;
import static org.cobbzilla.util.reflect.ReflectionUtil.arrayClass;


public class ArrayUtil { public class ArrayUtil {


@@ -147,8 +147,17 @@ public class ArrayUtil {
public static <T> T[] singletonArray (T thing) { return singletonArray(thing, (Class<T>) thing.getClass()); } public static <T> T[] singletonArray (T thing) { return singletonArray(thing, (Class<T>) thing.getClass()); }


public static <T> T[] singletonArray (T thing, Class<T> clazz) { public static <T> T[] singletonArray (T thing, Class<T> clazz) {
final T[] array = (T[]) Array.newInstance(arrayClass(clazz), 1);
final T[] array = (T[]) Array.newInstance(clazz, 1);
array[0] = thing; array[0] = thing;
return array; return array;
} }

public static <T> T[] copyAndReverse(T[] array, Class<T> 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;
}

} }

Loading…
Cancel
Save