#357 Java Generics
Java generics history and introduction timeline, the Pizza paper proposal by Phil Wadler and others, Type erasure vs Reification debate, binary compatibility considerations, Java Community Process politics and Apache Harmony licensing issues, evolution from JCP to JEPs process, legacy collection types like Vector and Hashtable with small 't' naming inconsistency, thread safety removal in Java 2 collections, generics applied to classes methods and constructors, unusual generic constructor example, Covariance and contravariance, invariant covariant and contravariant types, array covariance and ArrayStoreException, wildcards with extends and super bounds, PECS (Producer Extends Consumer Super) principle by Josh Bloch, Get and Put principle alternative, sealed interfaces potential impact on generics, reflection access to generic type information despite erasure, Class generification and type literals, raw types vs unbounded wildcards distinction, reifiable types definition, unchecked warnings importance, Service Loader usage with generic type checking for plugin systems, minimalist Java SE approach for long-lasting enterprise projects, syntactic sugar as code generation, records implementation as constrained classes, comparison of C++ templates criticism to Java generics adoption, the Java Generics and Collections book
Maurice Naftalin on twitter: @mauricenaftalin