Skip to content

Instantly share code, notes, and snippets.

@flying3615
Created May 21, 2019 21:49
Show Gist options
  • Save flying3615/eb4c9344bbba743b5a40cc85ce308ffd to your computer and use it in GitHub Desktop.
Save flying3615/eb4c9344bbba743b5a40cc85ce308ffd to your computer and use it in GitHub Desktop.
Null for Optional
public final class None<T> extends Option<T> {
public static class NoneHasNoValue extends RuntimeException {}
public None() {}
public boolean hasValue() { return false; }
public T get() { throw new NoneHasNoValue(); }
@Override
public String toString() { return "None"; }
@Override
public boolean equals(Object other) {
return (other == null || other.getClass() != None.class) ? false : true;
}
@Override
public int hashCode() { return -1; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment