I thought I understood Java generics pretty well, but then I came across the following in java.lang.Enum:
class Enum> >
class Enum>
You are not the only one wondering what that means; see Chaotic Java blog.
“If a class extends this class, it should pass a parameter E. The parameter E’s bounds are for a class which extends this class with the same parameter E”.