// generics/ArrayOfGeneric.java // (c)2016 MindView LLC: see Copyright.txt // We make no guarantees that this code is fit for any purpose. // Visit http://mindviewinc.com/Books/OnJava/ for more book information. public class ArrayOfGeneric { static final int SIZE = 100; static Generic[] gia; @SuppressWarnings("unchecked") public static void main(String[] args) { try { gia = (Generic[])new Object[SIZE]; } catch(ClassCastException e) { System.out.println(e.getMessage()); } // Runtime type is the raw (erased) type: gia = (Generic[])new Generic[SIZE]; System.out.println(gia.getClass().getSimpleName()); gia[0] = new Generic<>(); //- gia[1] = new Object(); // Compile-time error // Discovers type mismatch at compile time: //- gia[2] = new Generic(); } } /* Output: [Ljava.lang.Object; cannot be cast to [LGeneric; Generic[] */