尽管它会丢弃错误和单位,但是您可以执行以下操作:
Amount<Velocity> x = Amount.valueOf(7.5, NonSI.MILES_PER_HOUR);System.out.println(x);System.out.println( x.doublevalue(NonSI.MILES_PER_HOUR) + " miles per hour");
安慰:
(7.5±4.4E-16)英里/小时每小时7.5英里
附录: 我希望有一个能以任何单位使用任何数量的解决方案。
您仍然必须提供自己的标签来替换默认标签
UnitFormat;标签字符受限制
isValidIdentifier()。您也可以
AmountFormat按照@RogerLindsjö的建议替换自己的。本示例打印估计值的任意有效位数和标签的有效变体。另请参阅
TypeFormat。
final UnitFormat uf = UnitFormat.getInstance();uf.label(NonSI.MILES_PER_HOUR, "miles_per_hour");AmountFormat.setInstance(new AmountFormat() { @Override public Appendable format(Amount<?> m, Appendable a) throws IOException { TypeFormat.format(m.getEstimatedValue(), -1, false, false, a); a.append(" "); return uf.format(m.getUnit(), a); } @Override public Amount<?> parse(CharSequence csq, Cursor c) throws IllegalArgumentException { throw new UnsupportedOperationException("Parsing not supported."); }});Amount<Velocity> x = Amount.valueOf(7.5, NonSI.MILES_PER_HOUR);System.out.println(x);安慰:
7.5英里/小时



