Some time ago I opensourced jValues library that I use on a daily basis and forgot to share it here.
It is a library providing object oriented representations for primitive values like Float, Int and compound values like Vector, Frame (Aabb), Quad (4 Vectors), etc. Each value have mutable, immutable and readable interface. For example float can be represented via mutable FloatV interface, immutable (const) FloatC interface or readable FloatG that is supertype of FloatC and FloatV (you can read it but have no guarantee it’s immutable).
It provides most common methods that can be invoked on values it can represent.
Tutorial available at https://github.com/mikosik/jvalues provides simple examples and explains everything nicely.