7

我正在使用JSR 363 的参考实现:来自 maven (tec.units:unit-ri) 的测量单位 API。

现在我必须添加一些单位,如茶匙、液量盎司等。

我扩展 Units 类以添加一个新单元,如下所示:

public static final Unit<Volume> TEASPOON = addUnit(new TransformedUnit<Volume>("tsp", CUBIC_METRE, new MultiplyConverter(0.000005)));

这似乎适用于转换,但“tsp”没有解析,那么如何将它添加到解析器?

我在添加华氏温度时遇到问题,例如:T(°F) = T(K) × 9/5 - 459.67

如何使用转换器执行此操作,还是必须扩展 UnitConverter 并创建自己的?

4

2 回答 2

1

尽管您可以定义自己的单位,但 TEASPOON液量盎司等常用单位已经在 J​​SR 363 的扩展模块中可用,例如https://github.com/unitsofmeasurement/uom-systems

https://github.com/unitsofmeasurement/uom-systems/tree/master/common用于基于 RI 的库。华氏度也在那里。

所有这些系统或“完整的 SI”系统都可以在 JCenter 公共回购中获得。我们还计划很快将它同步到 MavenCentral,但是如果您将其存储库定义添加到您的 Maven(或 Gradle 等)构建文件中,您可以从 JCenter 以相同的方式使用它。

于 2016-02-12T14:46:07.160 回答
0

感谢提及。如果您正在使用SimpleUnitFormat(暂时将 Locale 放在一边),您可能在正确的位置缺少 label() 表达式。

您是否有 GitHub 帐户,如果可以,请在https://github.com/unitsofmeasurement/uom-systems/issues下提交,我们会尽快解决问题。或者提交 PR。

于 2016-08-24T15:35:03.410 回答