【问题标题】:Unit of measurement API in Java?Java中的度量单位API?
【发布时间】: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。

标签: java units-of-measurement jsr-275


【解决方案1】:

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

目前最活跃的实现是Eclipse UOMo

【讨论】:

  • 我知道此时我迟到了将近 2 年,但是;有什么方法可以从静态 jar 文件中使用 UOMo?或者您必须按照教程所示使用 Eclipse 插件框架?它看起来非常适合我们使用,但我很难将它集成到我们当前的项目中。我在这里也有一个关于它的问题:stackoverflow.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 中找到更多示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-28
      • 2012-09-14
      • 2020-11-21
      • 2015-10-03
      • 2010-09-25
      • 2020-09-01
      • 2011-02-05
      • 2012-07-05
      相关资源
      最近更新 更多