繁体   English   中英

Java中的度量单位API?

[英]Unit of measurement API in Java?

JSR-275 已被拒绝,Java 项目的度量单位 API 是一组接口,但尚未找到开源实现。

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

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

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

目前最活跃的实现是Eclipse UOMo

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

JSR-363 度量单位 API 的更新于 2016 年完成,并提供了相当完整的计量单位 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.4将打印2500 cm

你可以在这个 repo uom-demos 中找到更多的例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM