0

您将如何创建基于 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(..),这是一种不了解经度的工厂。

4

1 回答 1

0

我建议实现 Quantity 接口。

您可以在此处找到 JSR 作者的示例:http: //central.maven.org/maven2/tec/units/unit-ri/1.0.1/unit-ri-1.0.1-sources.jar

于 2016-11-23T20:35:40.817 回答