(no title)
Xorlev | 3 years ago
I don't know how many strange issues I've tracked down that amounted to "this protocol buffer has a uint32 field, and surprise now the value is negative in Java and oops there was a check that cared about that." At least five or six issues.
At least when it comes to serialization, enforce invariants above the serialization layer.
I would love an unsigned byte type in Java though. What a pain.
BoorishBears|3 years ago
Typing allows enforcing the boundaries where you go from signed to unsigned, and the bit fiddling is handled in the class
They're defined as inline classes/functions that have no runtime cost so it's equivalent to the "Straightforward emulation" from the articleXorlev|3 years ago