JSR 363添加新单位

TeK*_*eKo 7 java units-of-measurement jsr363

我正在使用来自maven(tec.units:unit-ri)的JSR 363:Measurement of Measurement API的参考实现.

现在我必须添加一些单位,如茶匙,液体盎司等.

我扩展Units类来添加一个像这样的新单元:

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

这似乎适用于转换,但"tsp"不解析,所以如何将其添加到解析器?

我在添加华氏温度时遇到了麻烦:T(°F)= T(K)×9/5 - 459.67

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

小智 1

尽管您可以定义自己的单位,但JSR 363 的扩展模块中已经提供了常见单位(如TEASPOON或液量盎司) ,如https://github.com/unitsofmeasurement/uom-systems

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

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