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?的主要内容,如果未能解决你的问题,请参考以下文章