如何使用Java Measurement API更改单元上的标签?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用Java Measurement API更改单元上的标签?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2116字,纯文字阅读大概需要4分钟。
内容图文
![如何使用Java Measurement API更改单元上的标签?](/upload/InfoBanner/zyjiaocheng/685/067c791561bd4656922d6dd7ae946d28.jpg)
问题介绍
我正在尝试使用this implementation of the Java Units of Measurement (JSR 363).
我想更改几个提供的单元的行为.一个示例是DEGREE_ANGLE,因此度数符号(°)会附加到要toString的任何Quantity的末尾.现在,数量将打印6.1345983929 [rad?]
尝试解决方案
我已经尝试了许多不同的方法来实现此目的,但是似乎在AbstractSystemsOfUnits其他示例(例如来自Unified Code for Units of Measure实现的示例)中存在的一种方法是使用如下所示的静态块:
// //////////////////////////////////////////////////////////////////////////
// Label adjustments for UCUM system
static {
SimpleUnitFormat.getInstance().label(ATOMIC_MASS_UNIT, "AMU");
SimpleUnitFormat.getInstance().label(LITER, "l");
SimpleUnitFormat.getInstance().label(OUNCE, "oz");
SimpleUnitFormat.getInstance().label(POUND, "lb");
}
我尝试通过扩展单元类the implementation I’m using来适应此解决方案.
public final class MyUnits extends Units {
static {
SimpleUnitFormat.getInstance().label(DEGREE_ANGLE, "°");
}
}
尝试使用此扩展的简单测试:
Quantities.getQuantity(2.009880307999, MyUnits.RADIAN).to(MyUnits.DEGREE_ANGLE).toString();
给我115.157658975 [rad?]
题
如何使用JSR 363 API更改单元上的标签?
解决方法:
嗯,我试了一下,对于您所描述的基本方法以及所使用的库(版本1.0.7)没有任何问题……我错过了什么吗?
无需扩展,基本方法可行,这是一个示例:
import tec.uom.se.ComparableQuantity;
import tec.uom.se.format.SimpleUnitFormat;
import tec.uom.se.quantity.Quantities;
import javax.measure.quantity.Angle;
import static tec.uom.se.unit.Units.DEGREE_ANGLE;
import static tec.uom.se.unit.Units.RADIAN;
public class CustomLabelForDegrees {
public static void main(String[] args) {
ComparableQuantity<Angle> x = Quantities.getQuantity(2.009880307999, RADIAN).to(DEGREE_ANGLE);
System.out.println(x);
SimpleUnitFormat.getInstance().label(DEGREE_ANGLE, "°");
System.out.println(x);
SimpleUnitFormat.getInstance().label(DEGREE_ANGLE, "?");
System.out.println(x);
SimpleUnitFormat.getInstance().label(DEGREE_ANGLE, "degrees");
System.out.println(x);
}
}
打印:
115.15765897479669 [rad?]
115.15765897479669 °
115.15765897479669 ?
115.15765897479669 degrees
您可以随时随地执行此操作.通常在静态块中完成,以便尽早完成一次,但这不是必需的.
内容总结
以上是互联网集市为您收集整理的如何使用Java Measurement API更改单元上的标签?全部内容,希望文章能够帮你解决如何使用Java Measurement API更改单元上的标签?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。