簡體   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