Optional -> OptionalResult

Ali Ebrahimi ali.ebrahimi1781 at gmail.com
Wed Jun 5 08:52:06 PDT 2013

+1 for language support.

Maybe using new jsr 308 and built-in java compiler plugin: @NotNull checker

@NotNull String str = null; //compile error

@NotNull String test(@NotNull String a){
     return null; //compile error

test(null) //compile error

String nullable = someMethod();

@NotNull String nonNullable = nullable; //compile error: incompatible type

this way we guarantee don't get NullPointerException anyway and don't need
handle that.

another and similar solution is introducing a syntactic sugar for
non-nullable types.

@NotNull String  <=> String!

On Wed, Jun 5, 2013 at 5:12 PM, Remi Forax <forax at univ-mlv.fr> wrote:

> On 06/05/2013 12:49 PM, Peter Levart wrote:
> > I'm not talking about "how nice" the code looks when using such API but
> > "what can" be accomplished by using it. Of course with language support
> > like ?. and ?: the code would could look much nicer even without
> Optional.
> +1,
> and better if Optional is an annotation/keyword, that forces users to
> use ?.,  ?: or a null check
> so have the same guarantee that Optional as a class without the overhead
> and without a way to stick Optional in a middle of angle brackets.
> A lot of people find that Java should do the boxing transparently, but
> adding a class Optional/Option/Maybe
> to manage null goes in the opposite direction by forcing users and
> writers of API to do the boxing (of null) by hand.
> Basically I see Optional/Option/Maybe (or any boxing of null) as a
> solution based on a design pattern.
> Most of the design patterns are created because of a lack of support in
> the language.
> So instead of using a design pattern why not adding support for null
> management directly in the language,
> we are talking about Java here, a language that has always evolve and
> will continue to evolve.
> >
> > Regards, Peter
> >
> >
> cheers,
> Rémi

More information about the lambda-dev mailing list