问题介绍
我正在尝试使用Java Units of Measurement (JSR 363) 的这种实现。
我想改变几个提供的单位的行为。一个例子是DEGREE_ANGLE
,因此度数符号 (°) 被附加到任何 Quantity 被toString
'd 的末尾。就像现在一样,数量将打印6.1345983929 [rad?]
解决方案的尝试
我已经尝试了很多不同的方法来实现这一点,但似乎在其他示例中存在的一种方法AbstractSystemsOfUnits
(例如来自此用于度量单位实现的统一代码)是使用如下静态块:
// //////////////////////////////////////////////////////////////////////////
// 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");
}
我试图通过扩展我正在使用的实现Units
类来调整这个解决方案。
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 更改单元上的标签?