Создание типа долготы на основе jsr363
Как бы вы создали тип Longitude на основе API JSR363?
Долгота может быть представлена, например, в виде двойного между]-pi,+pi] радианами или между]-180,180] градусами. Если вы добавите 20 градусов к долготе 175 градусов, вы получите -165 градусов. Это означает, что метод add() должен обрабатывать перенос, но я не вижу, как расширить текущую реализацию.
@cneller: Да, он каким-то образом будет реализовывать Number
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(..) внутренне, что является своего рода фабрикой, которая не знает о Longitude.
1 ответ
Я бы порекомендовал реализовать интерфейс Количество.
Вы можете найти примеры от авторов JSR здесь: http://central.maven.org/maven2/tec/units/unit-ri/1.0.1/unit-ri-1.0.1-sources.jar