Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Just adding too, I think some of the switch statement example code is wrong:

    Object obj = 123L;
    String formatted = switch (obj) {
        case Integer i -> String.format("int %d", i);
        case Long l    -> String.format("long %d", l);
        case Double d  -> String.format("double %f", d);
        case String s  -> String.format("String %s", s);
        default        -> o.toString();
    };
Unless I'm not understanding something, the default statement should be `obj.toString()` as `o` isn't defined.


JFC, I was going to say they should have used `String.valueOf(obj)` since I expected `Object obj = null; switch (obj) { default ->` to do something sane but no, the stupid PoS NPEs because `switch` itself evidently calls `Objects.requireNonNull`

The Billion Dollar Mistake meets the Power of Compounding Interest to produce an inflation adjusted number that just keeps on giving


You can add a 'case null' explicitly and merge it with default using 'case null, default -> ...'.

See [1] for more.

[1] https://openjdk.org/jeps/433




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: