Java Generics is an important topic and source of competitive arguments between Java, C++ and C# programmers about which has the best approach to generics. This is a high-level book that attempts to explain how and why Java does generics in the way that it does. It’s very nearly an essential read if you hope to master the topic but there are alternatives.

The first part of the book is an introduction that digs deep. After reading it you should understand how Java generics work and how they differ from C# and C++ generics. The explanations are good but the comparisons are just a little over stretched in an effort to prove that the Java way is the best. You’ll frequently come across, “this is how it was before generics” compared to “this is how much better it is after generics”. The introduction takes us from the basic to the more advanced ideas including generic patterns.

The second half of the book moves off into the related, but not essential area, of collections. While this is well presented you do get the feeling that the authors ran out of material on generics and so needed something to fill a book-sized space. All useful and very practical if you are having trouble trying to figure out which collection type to use in any particular situation.

The overall style of the book is wordy with short and to the point examples that are usually interwoven with the discussion. If you are looking for larger real world examples you might not be happy but for me this is the way to master a complex and subtle topic and putting the ideas into action in the real world is something I can do for myself.

This is a very good book on two fairly focused topics – generics and collections. If you plan to make best use of either or both then buy a copy.