java - JSR 363 添加新单元

标签 java units-of-measurement jsr363

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

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

我扩展了 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 并创建自己的转换器?

最佳答案

虽然您可以定义自己的单位,但像 TEASPOONFluid Ounce 这样的常用单位已经在 J​​SR 363 的扩展模块中可用,例如 https://github.com/unitsofmeasurement/uom-systems

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

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

关于java - JSR 363 添加新单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34023130/

相关文章:

java - 按数量过滤计量单位

java - JAXBContext newInstance(class,class) 解释

html - 计量单位的正确使用?

python - 如何匹配同一数据集的 lomb-scargle 和 FFT 图?

java - Jackson 模块签名阻止为自引用泛型类型添加序列化器

java - 如何使用 Java Measurement API 更改单元上的标签?

java - 如何在 Hadoop 中对自定义可写类型进行排序

java - 更改maven eclipse项目中的java SDK版本

java - servlet 覆盖 HttpServlet 服务方法的正当理由

interface - 测量单位、接口(interface)和 Mixin