2 ms·
The only caveat is that if you change `Iterable<Integer>` to say `Iterable<String>` the compilation error becomes a bit weird in that it says you provide `Itera
by p2t2p 6y ago
The only caveat is that if you change `Iterable<Integer>` to say `Iterable<String>` the compilation error becomes a bit weird in that it says you provide `Iterable<Object>` while `Iterable<String>` is requested. But you do get compile time check after all.
- mrkeen 6y agoT is not R though. I want to preserve the static type information such that if I call: baz(bar(foo(t, f))); T<A> should go into foo(..) and come out (e.g. as T<B>) such that I can then call bar(..) on it. But in this case it leaves foo(..) as R extends Fooable, which is not something I can pass into bar(..).