Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Java Generics"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
  > Technical Program > Tutorials > All Tutorials

 : Sunday Morning Tutorials (8:30 - 12:00) : Languages and Development : Sunday

Java Generics

Meeting Room 14
Sunday, 8:30, half day


Angelika Langer, Independant Trainer / Mentor / Consultant:  Angelika Langer works as an independent freelance trainer, and conducts courses in Europe and the USA. Her preferred fields of interest are training, coaching, and mentoring in the area of object-oriented software development in C++, Java and C#. She is co-author of the authoritative book on "C++ Standard IOStreams and Locales" published at Addison Wesley. She wrote the column "Effective Standard Library" for the US magazines C++ Report and C/C++ Users Journal. Currently she writes a column named "Effective Java" for the German magazine Java Spektrum. She enjoys speaking at conferences all over the world. Her teaching focuses on advanced C++ and Java programming and concurrent programming. A more comprehensive biography can be found at www.langer/camelot.de/AboutMe/CV.html.

Tutorial number: 3

The addition of generic types and methods to the Java programming language has been explored since the advent of Java. With the 1.5 release of J2SE, support for Java generics has eventually been incorporated in the language. A common misconception regarding Java generics is their comparison to C++ templates. Both features have barely anything in common: C++ templates is a Turing complete language—Java generics is syntactic sugar that elides some casting. Enlightening is also the comparison to C# generics: Java generics are a pure compile-time feature where at runtime parameterized types are indistinguishable from regular types—C# on the contrary has exact runtime type information for parameterized type. While this sounds like a minor difference the consequences are substantial. In this tutorial, we will explain the new Java language feature, how it helps improving code quality, how it is supposed to be used and where its limitations are. More specifically, we will discuss the additions made to the language (parameterized types and methods) and various details such as the properties of type parameters (their bounds and their scope), type parameter inference, wildcards, the translation of generics into bytecode by type erasure, and quite a number of surprising side effects of type erasure.

Intermediate: Attendees should have a sound knowledge of Java. Knowledge of Java generics, C# generics or C++ templates are helpful but not required.