Я имею в виду, есть ли веская причина для этого? Метод получил следующую подпись:
public static Object newInstance(Class<?> componentType,
int length)
throws NegativeArraySizeException
На мой взгляд, было бы гораздо удобнее объявить метод следующим образом:
public static <T> T[] newInstance(Class<T> componentType, int length)
throws NegativeArraySizeException
Таким образом, при создании арифтипического типа не требуется выполнять дополнительное литье, например
public class Gen<T>{
private T[] a;
public static <T> Gen<T> createByClass(Class<T> clazz){
a = clazz.cast(Array.newIntance(clazz.getComponentType(), 8); //we have to invoke
//clazz.cast here.
}
}
Есть ли веские основания объявить тип возвращаемого значения как Object
? Для меня это кажется очень неудобным.