Java中的度量单位API?

Posted

技术标签:

【中文标题】Java中的度量单位API?【英文标题】:Unit of measurement API in Java? 【发布时间】:2011-09-22 09:52:44 【问题描述】:

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

在这篇文章中:Which jsr-275 units implementation should be used? 项目所有者提到该实施将在去年年底在 JScience 上准备就绪,但在我寻找 JScience 时没有找到任何可以在重量或长度单位之间转换的东西在https://maven.java.net/ 上,我找到了它,但JAR 甚至不在目录https://maven.java.net/content/repositories/snapshots/org/jscience/jscience/5.0-SNAPSHOT/ 中,所以我不得不从其他地方获取它。

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

【问题讨论】:

有人对此有更新吗?我似乎在公共回购中找不到 5.0-SNAPSHOT。 【参考方案1】:

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

目前最活跃的实现是Eclipse UOMo

【讨论】:

我知道此时我迟到了将近 2 年,但是;有什么方法可以从静态 jar 文件中使用 UOMo?或者您必须按照教程所示使用 Eclipse 插件框架?它看起来非常适合我们使用,但我很难将它集成到我们当前的项目中。我在这里也有一个关于它的问题:***.com/questions/26870068/… 安迪,感谢您的关注。鉴于去年 4 月刚刚开始的“新派对”并获得了 JSR 363 的批准,并且由于物联网的普遍趋势正在寻求更大的支持,您可能希望在 unitsofmeasurement.github.io 上查看 JSR 363 和相关项目 链接现已断开。我认为替换站点是unitsofmeasurement.github.io 是的,你是对的,这最初是从 2013 年开始的,大约一年后,甚至在 unitofmeasurement.org 停产之前 JSR 363 和 unitofmeasurement.github.io(或别名,如 uom.technology)成为可作为项目的新家。【参考方案2】:

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

【讨论】:

【参考方案3】:

此JSR-363 Units of Measurement API 的更新已于 2016 年完成,并提供了相当完整的 UoM API。现在已被JSR-385 Units of Measurement API 2.0 取代。您可以在 Github https://github.com/unitsofmeasurement 找到 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.4 将打印2500 cm

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

【讨论】:

以上是关于Java中的度量单位API?的主要内容,如果未能解决你的问题,请参考以下文章

如何更新以微米为单位的导出度量的标签值?

regexp_substr 提取字符串中的度量单位

WPF中的文本度量

windows的度量单位有哪几种?

4.css度量单位

如何在我的列表中的浮点数末尾添加后缀(如度量单位 cm、m、km 等)?