1.1 Generics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 1.2 Boxing and unboxing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 1.3 Foreach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 1.4 Generic methods and varargs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 1.5 Assertions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 1.6 Summingup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
2.1 Subtyping and The Substitution Principle. . . . . . . . . . . . . . . . . . . . . . . . . .21 2.2 Wildcards with extends. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 2.3 Wildcards with super. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 2.4 The Get and Put Principle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 2.5 Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 2.6 Wildcards vs. type parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 2.7 Wildcardcapture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 2.8 Restrictions on wildcards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
3.1 Comparable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 3.2 Maximum of a collection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 3.3 A fruity example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 3.4 Comparator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 3.5 Enumeratedtypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 3.6 Multiplebounds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 3.7 Bridges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 3.8 Staticmembers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 3.9 Nestedclasses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 3.10 How erasure works. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52