diff options
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/Arrays.java')
-rw-r--r-- | android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/Arrays.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/Arrays.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/Arrays.java new file mode 100644 index 0000000000..5459b41ae1 --- /dev/null +++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/Arrays.java @@ -0,0 +1,27 @@ + +package org.holoeverywhere.util; + +import java.lang.reflect.Array; + +public class Arrays { + @SuppressWarnings("unchecked") + public static <T> T[] copyOfRange(T[] original, int from, int to) { + return Arrays.copyOfRange(original, from, to, + (Class<T[]>) original.getClass()); + } + + @SuppressWarnings("unchecked") + public static <T, U> T[] copyOfRange(U[] original, int from, int to, + Class<? extends T[]> newType) { + int newSize = to - from; + if (newSize < 0) { + throw new IllegalArgumentException(from + " > " + to); + } + T[] copy = (Object) newType == (Object) Object[].class ? (T[]) new Object[newSize] + : (T[]) Array.newInstance(newType.getComponentType(), newSize); + System.arraycopy(original, from, copy, 0, + Math.min(original.length - from, newSize)); + return copy; + } + +} |