Boolean a = true;
Boolean b = false;
Boolean c = null;
I would use that. It’s the most straight-forward.
Another way is to use an enumeration. Maybe that’s even better and faster, since no boxing is required:
public enum ThreeState {
TRUE,
FALSE,
TRALSE
};
There is the advantage of the first that users of your class doesn’t need to care about your three-state boolean. They can still pass true
and false
. If you don’t like the null
, since it’s telling rather little about its meaning here, you can still make a public static final Boolean tralse = null;
in your class.