JEP proposed to target JDK 12: 325: Switch Expressions (Preview)

Stephen Colebourne scolebourne at joda.org
Thu Aug 23 14:11:49 UTC 2018


Null handling was deferred. I believe this is the current spec
http://cr.openjdk.java.net/~gbierman/switch-expressions.html

(I support the rationale for deferring nulls, see amber-dev/amber-spec-experts)

Stephen

On 23 August 2018 at 14:39, Robert Zenz <robert.zenz at sibvisions.com> wrote:
> Wasn't one of the original complaints about the `switch` statement its `null`
> behavior? I'm not seeing that addressed in the JEP, neither for the statement
> nor for the expression.
>
> I mean, the following fails with a `NullPointerException`:
>
>     MyEnum value = null;
>
>     switch(value) {
>         case MyEnum.A:
>             // Do something
>             break;
>     }
>
> I'm not seeing outlined in the JEP how the expression would react to that:
>
>     MyEnum value = null;
>
>     int result = switch(value) {
>         case MyEnum.A -> 5;
>     }
>
> Also, while we are at that topic, I could not find a JEP for actually fixing the
> `switch` statement behavior to correctly handle `null`. Has somebody seen one?
>
> As an idea for that, something like this should preserve backwards compatibility:
>
>     MyEnum value = null;
>
>     // Fails with a NullPointerException
>     switch(value) {
>         case MyEnum.A:
>             // Do something
>             break;
>     }
>
>     // Succeeds
>     switch(value) {
>         case MyEnum.A:
>             // Do something
>             break;
>
>         case null:
>             // Do something else.
>             break;
>     }
>
> If I'm not mistaken, that is.
>
>
> On 17.08.2018 19:44, mark.reinhold at oracle.com wrote:
>> The following JEP is proposed to target JDK 12:
>>
>>   325: Switch Expressions (Preview)
>>        http://openjdk.java.net/jeps/325
>>
>> Feedback on this proposal is more than welcome, as are reasoned
>> objections.  If no such objections are raised by 23:00 UTC on Friday,
>> 24 August, or if they’re raised and then satisfactorily answered, then
>> per the JEP 2.0 process proposal [1] I’ll target this JEP to JDK 12.
>>
>> - Mark
>>
>>
>> [1] http://cr.openjdk.java.net/~mr/jep/jep-2.0-02.html
>>


More information about the jdk-dev mailing list