mirror of
https://github.com/corda/corda.git
synced 2025-03-03 04:49:46 +00:00
Implement the Arrays#copyOf family
... as introduced in Java 6. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
parent
46a55bd024
commit
6a81623690
@ -10,6 +10,8 @@
|
||||
|
||||
package java.util;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
|
||||
public class Arrays {
|
||||
private Arrays() { }
|
||||
|
||||
@ -348,4 +350,76 @@ public class Arrays {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean[] copyOf(boolean[] array, int newLength) {
|
||||
boolean[] result = new boolean[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static byte[] copyOf(byte[] array, int newLength) {
|
||||
byte[] result = new byte[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static char[] copyOf(char[] array, int newLength) {
|
||||
char[] result = new char[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static double[] copyOf(double[] array, int newLength) {
|
||||
double[] result = new double[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static float[] copyOf(float[] array, int newLength) {
|
||||
float[] result = new float[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int[] copyOf(int[] array, int newLength) {
|
||||
int[] result = new int[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static long[] copyOf(long[] array, int newLength) {
|
||||
long[] result = new long[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static short[] copyOf(short[] array, int newLength) {
|
||||
short[] result = new short[newLength];
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T> T[] copyOf(T[] array, int newLength) {
|
||||
Class<?> clazz = array.getClass().getComponentType();
|
||||
T[] result = (T[])Array.newInstance(clazz, newLength);
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T, U> T[] copyOf(U[] array, int newLength,
|
||||
Class<? extends T[]> newType)
|
||||
{
|
||||
T[] result = (T[])Array.newInstance(newType.getComponentType(), newLength);
|
||||
int length = array.length > newLength ? newLength : array.length;
|
||||
System.arraycopy(array, 0, result, 0, length);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -130,6 +130,13 @@ public class Arrays {
|
||||
java.util.Arrays.hashCode((Object[])null);
|
||||
}
|
||||
|
||||
{ String[] list = new String[] { "Hello", "World", "!" };
|
||||
Object[] result = java.util.Arrays.copyOf(list, 2, Object[].class);
|
||||
expect(list[1] == result[1]);
|
||||
expect(result.length == 2);
|
||||
expect(result.getClass().getComponentType() == Object.class);
|
||||
}
|
||||
|
||||
testSort();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user