Используя библиотеку javax.measure , я пытаюсь преобразовать км / ч в мин / км.
Однако мин / км не является частью единиц, предложенных unit-ri .
Итак, я попытался создать свое собственное подразделение: MINUTE_BY_KILOMETERS
import javax.measure.Quantity;
import javax.measure.Unit;
import javax.measure.quantity.Length;
import javax.measure.quantity.Speed;
import tec.units.ri.quantity.Quantities;
import tec.units.ri.unit.MetricPrefix;
import tec.units.ri.unit.Units;
Quantity<Speed> speed = Quantities.getQuantity(10, Units.KILOMETRE_PER_HOUR);
assertEquals("10 km/h", speed.toString());
// Conversion m/s
assertEquals("2.7777800000000004 m/s", speed.to(Units.METRE_PER_SECOND).toString());
// Conversion min/km
Unit<Speed> MINUTE_BY_KILOMETERS = Units.MINUTE.divide(MetricPrefix.KILO(Units.METRE)).asType(Speed.class);
assertEquals("6 min/km", speed.to(MINUTE_BY_KILOMETERS).toString());
Но я получил исключение:
java.lang.ClassCastException: The unit: min/km is not compatible with quantities of type interface javax.measure.quantity.Speed
at tec.units.ri.AbstractUnit.asType(AbstractUnit.java:274)
Полагаю, мне нужно создать свой собственный Type, но я не выяснил, как.
Может кто-нибудь привести пример, пожалуйста?