您将如何创建基于 JSR363 API 的经度类型?
例如,经度可以表示为 ]-pi,+pi] 弧度之间或 ]-180,180] 度之间的双倍。如果将 20 度添加到 175 度经度,则得到 -165 度。这意味着 add() 方法需要处理包装,但我不知道如何扩展当前的实现。
@cneller:是的,它会以某种方式实现 Quantity<Angle> ,但它可能很简单:
public class Longitude extends NumberQuantity<Angle> {
public Longitude(Number number, Unit<Angle> unit) {
super(normalize(number, unit), unit);
}
public static Number normalize(Number angle, Unit<Angle> unit) {
...
}
}
但这不适用于当前的实现,因为它在内部调用 Quantities.getQuantity(..),这是一种不了解经度的工厂。