【发布时间】:2015-07-18 04:18:19
【问题描述】:
我们有一个系统,用户可以在其中提供任何单位的数据。数据被存储并可能转换为相同维度的任何其他单位。它基于 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”。有人有解决办法吗?
【问题讨论】:
-
我回答了你的问题,因为我需要同样的东西。在对源代码进行了一些广泛的挖掘之后,我很确定这实际上是不可能的:(。我将通过反射从 SI 和 NonSI 类中获得单位。如果你认为这是一个有效的解决方案,我可以在这里发布
-
我得出了同样的结论。由于我们需要做的其他一些事情在现有 API 中无法完成,因此我认为我们将自行开发并构建自己的。
标签: java units-of-measurement jscience