looking for FAQ on interconversion of IntFoo and Foo<Integer>

John Rose john.r.rose at oracle.com
Thu Apr 18 16:13:39 PDT 2013


On Apr 16, 2013, at 12:01 AM, John Rose <john.r.rose at oracle.com> wrote:

> Where is the standard place to find the design discussion for primitive-type specializations of the new interfaces (functions, producers, consumers, optionals...)?

For the record, here's an partial answer.  The package summaries talk about naming and primitive specialization.
http://download.java.net/lambda/b81/docs/api/java/util/function/package-summary.html
http://download.java.net/lambda/b81/docs/api/java/util/stream/package-summary.html

The bit about making specialized interfaces disjoint from their generics is very interesting too.  Perhaps it is a hopeless tangle to try to work with subtyping and genericity at the same time.  Looks like the design takes its cue from the invariance of Java generics. IntSupplier is about what Supplier<int> if that were a type instance, and IntSupplier has the same relation to Supplier<Integer> as Supplier<Integer> has to Supplier<Object>.

— John


More information about the lambda-dev mailing list