Некоторые разработчики создают массивы родового типа, создавая Objec[]
и отбрасывая общий тип, как в этом примере кода:
public class ArrTest<E> {
public void test(E a){
E[] b = (E[])new Object[1];
b[0] = a;
System.out.println(b[0]);
}
public static void main(String[] args){
ArrTest<String> t = new ArrTest<String>();
t.test("Hello World");
}
}
Этот пример будет работать и имеет только предупреждение: Type safety: Unchecked cast from Object[] to E[]
.
Неужели это обескураживает? Это лучший способ создать массив родового типа? Может ли это вызвать неожиданные результаты или исключения, если я широко использую этот объект в своем программном обеспечении?