8

JSR-275 已被拒绝,Units of Measurement API for Java 项目是一组接口,但尚未找到开源实现。

在这篇文章中:应该使用哪个 jsr-275 单元实现?项目所有者提到该实施将在去年年底之前在 JScience 上准备好,但是当我在https://maven.java.net上寻找 JScience 时,没有找到任何可以在重量或长度单位之间转换的东西/,我找到了,但 JAR 甚至不在目录https://maven.java.net/content/repositories/snapshots/org/jscience/jscience/5.0-SNAPSHOT/中,所以我不得不从别的地方。

这个项目被抛在后面了吗?目前是否有在 Java 甚至可能是 Maven 存储库中转换测量单位的实现?

4

3 回答 3

6

Unit-API ( unitsofmeasurement.org ) 是 JSR-275 的继承者。

目前最活跃的实现是Eclipse UOMo

于 2013-01-23T21:15:55.897 回答
3

据我所知,JScience 非常活跃。该项目目前正在迁移到Java.net,迁移未完成。这很可能是您无法看到 5.0 的快照 JAR 的原因。事实上,最近的快照是在解决Java.net JIRA 中报告的特定配置问题之后才准备的。可能您应该等待几天,或者可能向项目管理员发送一封邮件,说明在此期间必须使用什么 JScience POM。

于 2011-06-24T23:56:24.477 回答
0

JSR-363 Units of Measurement API 的更新已于 2016 年完成,并提供了相当完整的 UoM API。现在已被JSR-385 Units of Measurement API 2.0取代。您可以在此处https://github.com/unitsofmeasurement在 Github 上找到 API 和实现背后的代码。

这是一个使用 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.4will print 2500 cm

您可以在这个 repo uom-demos中找到更多示例。

于 2021-06-09T19:42:56.673 回答