, T U.? , , :
class Foo<T extends Number & List> {
void doStuff(List<T> items) {
}
void doMoreStuff(List<? extends OutputStream> streams) {
}
}
doStuff() , List<T>, T Foo. :
class Weird extends Number implements List {
}
Foo<Weird> f = new Foo<Weird>();
f.doStuff(...);
doMoreStuff() f, - List<OutputStream>, List<FilterOutputStream>, List<ByteArrayOutputStream> ..