c'è uno specifico JSR 275 (javax.measure) con JScience come RI (implementazione di riferimento). Per esempio la conversione di 100 miglia in chilometri è facile come:
UnitConverter toKilometers = MILE.getConverterTo(KILOMETER);
double km = toKilometers.convert(Measure.valueOf(100, MILE).doubleValue(MILE));
(si noti che le unità sono al sicuro tutti i tipi di una fase di compilazione, una caratteristica killer imho)
Il contrario può essere facile:
UnitConverter toMiles1 = KILOMETER.getConverterTo(MILE);
o SuperEasy come:
UnitConverter toMiles2 = toKilometers.inverse();
importazioni NB:
import javax.measure.Measure;
import javax.measure.converter.UnitConverter;
import javax.measure.quantity.Length;
import static javax.measure.unit.NonSI.*;
import static javax.measure.unit.SI.*;
Si può dare un'occhiata a questo https://github.com/mbe24/sius ormai supporta metro, miglio per lunghezza e chilogrammo, sterlina per massa. Supporta l'aggiunta e effettua la conversione del tipo * implicito *. È staticamente digitato, quindi gli errori di conversione sono visibili al momento della compilazione :) Aggiungerò altre funzionalità :) – mike