In Effective Java, I came across a language construct I'd never seen before:
public class Foo<T extends List & Comparator> { <U extends List & Comparator> void foo(U x) { } }
This declares that T must extend or implement both List and Comparator. I've never had occasion to use this, but I can imagine it would be useful. The example Bloch gives in the book is when T is derived from one class and implements an interface.
Post a Comment