Primitive Queue<any T> considerations
Doug Lea
dl at cs.oswego.edu
Thu Nov 19 12:35:42 UTC 2015
We considered most of these issues when designing jdk8 Spliterator,
which was created with possible any-fication in mind
(and emulated in jdk8 IntStream etc). This led to using
boolean Spliterator::tryAdvance(Consumer<T> action)
This avoids need for defaults or shadow bits or boxes,
at the expense of placing more pressure on optimizing
lambdas, which can still be an issue.
We briefly considered also adding the similar
boolean Queue::tryConsume(Consumer<T> action)
... and similarly in a few other APIs. In retrospect, we probably ought
to have done this in jdk8, since it seems almost inevitable that
they will be added when any-fication happens.
People don't have to use them of course, but when they don't,
they will have to rely on boxing and/or Optional for
possibly-null-returning methods.
-Doug
More information about the valhalla-dev
mailing list