//: generics/ArrayOfGeneric.java // ©2015 MindView LLC: see Copyright.txt public class ArrayOfGeneric { static final int SIZE = 100; static Generic[] gia; @SuppressWarnings("unchecked") public static void main(String[] args) { // Compiles; produces ClassCastException: //! gia = (Generic[])new Object[SIZE]; // 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: Generic[] *///:~