# Units

## Units

The `Units` class extends `AbstractSystemOfUnits` and provides a set of a set of static constants for the most common units defined by SI/BIPM, see [Supported Units](https://github.com/unitsofmeasurement/unit-ri-userguide/tree/c27e4430dfef4d2aef864605f4682caea06fd63f/supported_units.html) .

## Metric Prefix

`MetricPrefix` is provided for obtaining multiples or submultiples of system units. Method names mirror SI / Metric prefix names but are uppercase like it's common to **constants** in Java. `MetricPrefix` is a "hybrid" enum, defining the constant factors as enumeration elements, but doing the actual conversion via matching static method names like `CENTI`, `MEGA`, etc.

Examples:

```
Unit<Length> m  = Units.METRE;
Unit<Length> km = MetricPrefix.KILO(Units.METRE);
Unit<Energy> kW = MetricPrefix.KILO(Units.WATT);
```

Unit instances returned by one of these methods provide type safety through unit parameterization (the  and  type parameters). This feature was discussed in the [Unit Parametrization ](https://docs.google.com/document/d/12KhosAFriGCczBs6gwtJJDfg_QlANT92_lhxUWO2gCY/edit#heading=h.bhjpzpqftc5g)chapter of the specification.
