JSR 363 adding new units

﹥>﹥吖頭↗ 提交于 2019-12-08 18:18:56

问题


I am using the reference implementation of JSR 363: Units of Measurement API from maven (tec.units:unit-ri).

Now I have to add a few units like teaspoon, fluid ounce and so on.

Im extending the Units class to add a new unit like this:

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

This seems to work for converting but "tsp" is not parsing, so how do I add it to the parser?

And Im having trouble adding Fahrenheit for example: T(°F) = T(K) × 9/5 - 459.67

How can I do this with the converters, or do I have to extend UnitConverter and create my own?


回答1:


Though you may define your own unit, common units like TEASPOON or Fluid Ounce are already available in extension modules for JSR 363 like https://github.com/unitsofmeasurement/uom-systems

https://github.com/unitsofmeasurement/uom-systems/tree/master/common for the RI-based library. Fahrenheit is also there.

All these systems or the "full SI" system are available on the JCenter public repo. We plan to also sync it to MavenCentral soon, but you can use it the same way from JCenter if you add its repository definition to your Maven (or Gradle, etc.) build files.




回答2:


Thanks for mentioning. If you're using SimpleUnitFormat (leaving Locale aside for now) you may be missing a label() expression in the right places.

Do you have a GitHub account, then please file it under https://github.com/unitsofmeasurement/uom-systems/issues if you can and we'll address the issue as soon as possible. Or file a PR.



来源:https://stackoverflow.com/questions/34023130/jsr-363-adding-new-units

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!