See: Description
Interface | Description |
---|---|
Measurable<Q extends Quantity> |
This interface represents the measurable, countable, or comparable
property or aspect of a thing.
|
Class | Description |
---|---|
DecimalMeasure<Q extends Quantity> |
This class represents a measure whose value is an arbitrary-precision
decimal number.
|
Measure<V,Q extends Quantity> |
This class represents the result of a measurement stated in a
known unit.
|
MeasureFormat |
This class provides the interface for formatting and parsing
measures . |
VectorMeasure<Q extends Quantity> |
This class represents a measurement vector of two or more dimensions.
|
Provides strongly typed measurements to enforce compile-time check of parameters consistency and avoid interface errors.
Let's take the following example:[code]
class Person {
void setWeight(double weight);
}[/code]
Should the weight be in pound, kilogram ??
Using measures there is no room for error:[code]
class Person {
void setWeight(Measurable
Users may create their own Measurable
implementation:[code]
public class Period implements Measurable
Users may also combine a definite amount (scalar, vector, collection, etc.)
to a unit and make it a Measure
(and
a Measurable
instance). For example:
[code]
// Scalar measurement (numerical).
person.setWeight(Measure.valueOf(180.0, POUND)); // Measure extends Measure
extends Measurable
{
public Amount(double value, double error, Unit
unit) { ... }
public Amount
plus(Amount
that) {...}
public Amount> times(Amount> that) {...}
... // doubleValue(Unit) returns estimated value.
}
[/code]