# Range Class

`Range` is a compromise between much broader and complex approaches like Google Guava and a too narrow and limited `ValueRange` type \[[JSR-310](https://github.com/unitsofmeasurement/unit-ri-userguide/tree/c27e4430dfef4d2aef864605f4682caea06fd63f/GLOSSARY.html#JSR-310)] added to Java 8 (something like `TemporalRange` could have been a better name there, because it uses another specific type `TemporalField` and is therefore useless outside the Temporal context) The generic base type Range is suitable for cases where one does not know the exact parameterized quantity type, e.g. results of operations like divide() or multiply() when asType() cannot be applied. The specialized subclass `QuantityRange` is somewhat modeled after definitions in \[OGC\_OM] and has slight similarities with the `MeasurementRange` class from \[JSR-256] but using Generics which were not available at the time.

![](https://2612382847-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L9He1MqFL6Zxw4RhYuK%2F-L9He1obtRH7s5GAZpjf%2F-L9He6lzoC6R80jWsC0Q%2Fimage09.png?generation=1522878940667768\&alt=media)
