我们有一个系统,用户可以在其中提供任何单元的数据。数据存储并有可能转换为相同维度的任何其他单元。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
实现中的单元列表。