在JScience中打印出所有定义的单元



我们有一个系统,用户可以在其中提供任何单元的数据。数据存储并有可能转换为相同维度的任何其他单元。IS基于JScience API。

我想制定所有支持单元的列表,以及他们拥有的所有别名。我似乎找不到这样做的方法。目前我只是这样做:

    for (javax.measure.unit.Unit<?> unit: javax.measure.unit.SI.getInstance().getUnits())
        System.out.println(UnitFormat.getInstance().format(unit));
    for (javax.measure.unit.Unit<?> unit: javax.measure.unit.NonSI.getInstance().getUnits())
        System.out.println(UnitFormat.getInstance().format(unit));

首先,这只会产生标签的列表,我找不到一种方法来获得别名。

其次,它甚至似乎都不包含所有单元。如果我在分解文件中查看javax.measure.unit.unitformat,这似乎是所有标签所在的地方;我看到了行:

DEFAULT.label(NonSI.ROENTGEN, "Roentgen");

,但我在输出中看不到" reontgen"。有人有解决方案吗?

您可能需要先尝试JSR 363。这是JScience 4和JSR 275的继任者,而JSR 363在2016年9月做到了。

JSR 363知道多个单元系统,但让我们将内置的RI带入。您可以应用称为SystemOfunitSreporter的图书馆实用程序,并将其应用如下:

import tec.units.ri.unit.Units;
import tec.uom.lib.common.util.SystemOfUnitsReporter;
SystemOfUnitsReporter reporter = SystemOfUnitsReporter.of(Units.getInstance());
reporter.report();

这将打印出SystemOfUnits实现中的单元列表。

最新更新