2016-11-23 1 views
0

Comment créer un type de longitude basé sur l'API JSR363? Une longitude peut être représentée par exemple par un double entre] -pi, + pi] radians ou entre] -180,180] degrés. Si vous ajoutez 20 degrés à une longitude de 175 degrés, vous obtenez -165 degrés. Cela signifie que la méthode add() doit gérer le wrapping mais je ne vois pas comment étendre l'implémentation actuelle.Création d'un type de longitude basé sur jsr363

@cneller: Oui il instaurera Quantité <Angle> en quelque sorte, mais il aurait pu être aussi simple que:

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) { 
     ... 
    } 
} 

Mais cela ne fonctionne pas avec la mise en œuvre actuelle parce qu'elle appelle Quantities.getQuantity (..) interne qui est une sorte d'usine qui ne connaît pas la longitude.

Répondre