Remix.run Logo
shagie a day ago

For Java developers... you can use Optional<Boolean> to store the elusive four possible booleans.

nitnelave a day ago | parent [-]

5, no? Null, Optional::empty, Optional(null), Optional(true), Optional(false)

shagie a day ago | parent [-]

    public static void main (String[] args) {
        Optional<Boolean> n = Optional.ofNullable(null);
        Optional<Boolean> e = Optional.empty();
        System.out.println(n.equals(e));
    }

    true
https://ideone.com/EGRdi5

A null in an Optional is empty. So you've got:

    Optional<Boolean> n = null;
    Optional<Boolean> e = Optional.empty();
    Optional<Boolean> t = Optional.of(Boolean.TRUE);
    Optional<Boolean> f = Optional.of(Boolean.FALSE);
nitnelave 8 hours ago | parent [-]

I guess I was missing the NPE: https://ideone.com/rp4Nvv

Optional.of(null) throws an NPE