If we want cross-implementation interoperability, we may need to define the behavior of Dimension.equals(Object). It would be needed because two Unit instances are considered convertible if all their dimensions are equal. One possible approach would be to normalize dimension symbols (L for length, T for time, etc.) and require Dimension.equals(Object) to compare the symbols. But we could also choose that allowing mix of different Dimension implementation is not a goal, which is all-right (I just don't know if it was a conscientious decision or an accident).
If we want cross-implementation interoperability, we may need to define the behavior of
Dimension.equals(Object). It would be needed because twoUnitinstances are considered convertible if all their dimensions are equal. One possible approach would be to normalize dimension symbols (Lfor length,Tfor time, etc.) and requireDimension.equals(Object)to compare the symbols. But we could also choose that allowing mix of differentDimensionimplementation is not a goal, which is all-right (I just don't know if it was a conscientious decision or an accident).