Java中的度量单位API是什么?

8
JSR-275已被拒绝,Java测量单位API项目是一组接口,但没有找到开源实现。
在这篇文章Which jsr-275 units implementation should be used?中,项目所有者提到该实现将在去年年底准备就绪,但没有找到任何可以在JScience之间转换重量或长度单位的内容。当我在https://maven.java.net/上寻找JScience时,我找到了它,但JAR甚至不在目录https://maven.java.net/content/repositories/snapshots/org/jscience/jscience/5.0-SNAPSHOT/中,所以我必须从其他地方获取它。
这个项目被抛在后面了吗?是否当前有Java测量单位转换的实现,甚至可能有Maven存储库?

有人对此有更新吗?我似乎在公共仓库中找不到5.0-SNAPSHOT。 - Paul King
3个回答

6

我知道现在已经晚了将近两年,但是有没有办法使用静态jar文件中的UOMo?还是必须像教程所示使用Eclipse插件框架?它看起来非常适合我们的使用,但我很难将其集成到我们当前的项目中。我也在这里发布了一个相关问题:http://stackoverflow.com/questions/26870068/how-to-use-eclipse-uomo-units-of-measurement-in-standalone-project - Andy
1
Andy,感谢您的关注。自从去年四月份JSR 363获得批准并且由于普遍的物联网趋势而得到更大的支持,一个“新派对”已经开始了。您可能想要在http://unitsofmeasurement.github.io/上查看JSR 363和相关项目。 - Werner Keil
1
链接已经失效。我认为替代网站是https://unitsofmeasurement.github.io/。 - James Mudd
是的,你说得对,这最初是在2013年发布的,大约一年后,即使在unitsofmeasurement.org停用之前,JSR 363和unitsofmeasurement.github.io(或别名如uom.technology)也成为该项目的新家。 - Werner Keil

3
据我所知,JScience 仍然非常活跃。该项目目前正在迁移到 Java.net,迁移尚未完成。这很可能是您无法看到 5.0 快照 JAR 的原因。实际上,最近的快照是在解决了 Java.net JIRA 中报告的特定配置问题 后准备的。也许您应该等待几天,或者向项目管理员发送邮件以了解在过渡期间应使用哪个 JScience POM。

0

关于JSR-363计量单位API的更新已于2016年完成,提供了一个相当完整的UoM API。现在这已被JSR-385计量单位API 2.0所取代。您可以在Github上找到API和实现的代码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 中找到更多示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接