Make ObjectUtils.addObjectToArray() generic
This commit is contained in:
@@ -122,14 +122,14 @@ public abstract class ObjectUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* Append the given Object to the given array, returning a new array
|
||||
* consisting of the input array contents plus the given Object.
|
||||
* Append the given object to the given array, returning a new array
|
||||
* consisting of the input array contents plus the given object.
|
||||
* @param array the array to append to (can be <code>null</code>)
|
||||
* @param obj the Object to append
|
||||
* @param obj the object to append
|
||||
* @return the new array (of the same component type; never <code>null</code>)
|
||||
*/
|
||||
public static Object[] addObjectToArray(Object[] array, Object obj) {
|
||||
Class compType = Object.class;
|
||||
public static <A,O extends A> A[] addObjectToArray(A[] array, O obj) {
|
||||
Class<?> compType = Object.class;
|
||||
if (array != null) {
|
||||
compType = array.getClass().getComponentType();
|
||||
}
|
||||
@@ -137,7 +137,8 @@ public abstract class ObjectUtils {
|
||||
compType = obj.getClass();
|
||||
}
|
||||
int newArrLength = (array != null ? array.length + 1 : 1);
|
||||
Object[] newArr = (Object[]) Array.newInstance(compType, newArrLength);
|
||||
@SuppressWarnings("unchecked")
|
||||
A[] newArr = (A[]) Array.newInstance(compType, newArrLength);
|
||||
if (array != null) {
|
||||
System.arraycopy(array, 0, newArr, 0, array.length);
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ public final class ObjectUtilsTests extends TestCase {
|
||||
public void testAddObjectToArrayWhenEmpty() {
|
||||
String[] array = new String[0];
|
||||
String newElement = "foo";
|
||||
Object[] newArray = ObjectUtils.addObjectToArray(array, newElement);
|
||||
String[] newArray = ObjectUtils.addObjectToArray(array, newElement);
|
||||
assertEquals(1, newArray.length);
|
||||
assertEquals(newElement, newArray[0]);
|
||||
}
|
||||
@@ -128,7 +128,7 @@ public final class ObjectUtilsTests extends TestCase {
|
||||
String existingElement = "foo";
|
||||
String[] array = new String[] {existingElement};
|
||||
String newElement = "bar";
|
||||
Object[] newArray = ObjectUtils.addObjectToArray(array, newElement);
|
||||
String[] newArray = ObjectUtils.addObjectToArray(array, newElement);
|
||||
assertEquals(2, newArray.length);
|
||||
assertEquals(existingElement, newArray[0]);
|
||||
assertEquals(newElement, newArray[1]);
|
||||
@@ -137,7 +137,7 @@ public final class ObjectUtilsTests extends TestCase {
|
||||
public void testAddObjectToSingleNullElementArray() {
|
||||
String[] array = new String[] {null};
|
||||
String newElement = "bar";
|
||||
Object[] newArray = ObjectUtils.addObjectToArray(array, newElement);
|
||||
String[] newArray = ObjectUtils.addObjectToArray(array, newElement);
|
||||
assertEquals(2, newArray.length);
|
||||
assertEquals(null, newArray[0]);
|
||||
assertEquals(newElement, newArray[1]);
|
||||
@@ -145,7 +145,7 @@ public final class ObjectUtilsTests extends TestCase {
|
||||
|
||||
public void testAddObjectToNullArray() throws Exception {
|
||||
String newElement = "foo";
|
||||
Object[] newArray = ObjectUtils.addObjectToArray(null, newElement);
|
||||
String[] newArray = ObjectUtils.addObjectToArray(null, newElement);
|
||||
assertEquals(1, newArray.length);
|
||||
assertEquals(newElement, newArray[0]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user