The following snippet makes sense yet when I run this against my unit test.. I get a ClassCastException (Object can't be cast to String) on the line marked with '>>>>'. Can this type of operation be done in a generic ?
public class ArrayUtils<E> {
public static <E> E[] appendToArray(E[] array, E item) {
E[] result = (E[])new Object[array.length+1];
for(int i=0; i < array.length; i++ ) {
result[i] = array[i];
}
result[result.length-1] = item;
return result;
}
}
@Test
public void testAppendToArray() {
String[] array = new String[1];
array[0] = "a";
assertSame("Array is not correct length.", 1, array.length );
>>>> String[] appendToArray = ArrayUtils.<String>appendToArray(array, "b");
assertSame("Array is not correct length.", 2, appendToArray.length );
}