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

Robert Zenz robert.zenz at sibvisions.com
Thu Aug 23 13:39:33 UTC 2018


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