API единиц измерения в Java?

JSR-275 был отклонен, проект API единиц измерения для Java представляет собой набор интерфейсов, но не нашел реализации с открытым исходным кодом.

В этом сообщении: Какую реализацию модулей jsr-275 следует использовать? владелец проекта упоминает, что реализация должна была быть готова к концу прошлого года на JScience, но не нашел там ничего для преобразования между единицами веса и длины, и когда я искал JScience на https://maven.java.net/, я нашел его, но JAR даже не было в каталоге https://maven.java.net/content/repositories/snapshots/org/jscience/jscience/5.0-SNAPSHOT/, поэтому мне пришлось взять его откуда-то еще.

Остался ли этот проект позади? И есть ли в настоящее время реализация для преобразования единиц измерения в Java и даже, возможно, репозиторий Maven?


person CCC    schedule 24.06.2011    source источник
comment
у кого-нибудь есть новости по этому поводу? Кажется, я не могу найти 5.0-SNAPSHOT в общедоступном репо.   -  person Paul King    schedule 06.09.2012


Ответы (3)


Насколько мне известно, JScience очень даже жива. В настоящее время проект переносится на Java.net, и перенос еще не завершен. Это, скорее всего, причина, по которой вы не можете видеть JAR-файлы моментальных снимков для 5.0. Фактически, самый последний снимок был подготовлен только после устранения конкретной проблемы с конфигурацией, о которой сообщалось в Java.net JIRA. Возможно, вам следует подождать несколько дней или, возможно, отправить письмо администратору проекта о том, какой JScience POM следует использовать в промежутке времени.

person Vineet Reynolds    schedule 24.06.2011

Unit-API (unitsofmeasurement.org) является преемником JSR-275.

Наиболее активная реализация на данный момент — Eclipse UOMo.

person Werner Keil    schedule 23.01.2013
comment
Я знаю, что опоздал на вечеринку почти на 2 года, но; есть ли способ использовать UOMo из статического файла jar? Или вам нужно использовать платформу плагинов Eclipse, как показано в руководстве? Это выглядит идеально для нашего использования, но мне очень трудно интегрировать это в наш текущий проект. У меня также есть вопрос, опубликованный здесь: stackoverflow.com/questions/26870068/ - person Andy; 12.11.2014
comment
Энди, спасибо за интерес. Учитывая, что новая вечеринка только началась в апреле прошлого года с одобренным JSR 363 и ожидает большей поддержки благодаря общей тенденции IoT, вы можете проверить JSR 363 и связанные проекты на unitsofmeasurement.github.io - person Werner Keil; 21.01.2015
comment
Ссылка сейчас не работает. Я думаю, что сайт замены unitsofmeasurement.github.io - person James Mudd; 10.06.2021
comment
Да, вы правы, это было первоначально в 2013 году, примерно за год спустя, даже до того, как UnitsofMeasurement.org был прекращен JSR 363, и вместе с ним unitofmeasurement.github.io (или псевдонимы, такие как uom.technology) стали доступны в качестве нового дома для проекта. . - person Werner Keil; 11.06.2021

Обновление этого API единиц измерения JSR-363 было завершено в 2016 г. и предоставляет довольно полный API UoM. Теперь его заменил JSR-385 Units of Measurement API 2.0. Вы можете найти код API и реализацию на Github здесь https://github.com/unitsofmeasurement.

Вот простой пример преобразования с использованием UoM API 2.0.

import tech.units.indriya.quantity.Quantities;
import javax.measure.Quantity;
import javax.measure.quantity.Length;

import static javax.measure.MetricPrefix.CENTI;
import static tech.units.indriya.unit.Units.METRE;

class SimpleUnitExample {
    public static void main(String[] args) {
        Quantity<Length> lengthQuantity = Quantities.getQuantity(25, METRE);
        System.out.println(lengthQuantity.to(CENTI(METRE)));
    }
}

При зависимости от tech.units:indriya:2.0.4 будет напечатано 2500 cm.

Вы можете найти множество других примеров в этом репозитории uom-demos.

person James Mudd    schedule 09.06.2021