Optional require(s) NonNull
Zhong Yu
zhong.j.yu at gmail.com
Wed Oct 31 09:21:39 PDT 2012
On Wed, Oct 31, 2012 at 10:53 AM, Olexandr Demura
<oleksander.demura at gmail.com> wrote:
> May be we do not need Optional at all?
> It does less than most of randomly chosen developers expect.
> It has very limited usage and restricted applicability.
>
> Could exception mechanism be used instead?
> Like Peter Levart proposed in "inference of throws type parameters in SAMs"
> http://mail.openjdk.java.net/pipermail/lambda-dev/2012-October/006361.html
I like it a little more than Optional. Very often, when we call a
method like `findFirst()`, we know it will succeed, per application
logic. Forcing us to pretend that we don't know and we must test the
result for present-ness is an undue tax, and it reduces clarity of
code. In Levart's design, one can simply boldly invoke `findFirst()`
without any protection, if he knows it'll succeed.
I don't understand why null pointer is so dreaded. If it's up to me,
`getFirst()` returns null if not found, and we can have some static
"elvis" methods
elvis( getFirst(), defaultValue )
even better if Java has "static extension methods"
getFirst()#elvis(defaultValue)
where exp#foo(args) means foo(exp, args)
Zhong Yu
More information about the lambda-dev
mailing list