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

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