Sto scrivendo qualcosa che gestisce unità di lunghezza, ad esempio, metri e piedi. Non voglio convertirmi accidentalmente tra di loro (cercando di evitare qualcosa come il incidente di Mars Climate Orbiter ).
Mi piacerebbe utilizzare il sistema di tipi per questo, in modo che il compilatore possa rilevare questo tipo di errori e sia in grado di convertire tra questi tipi solo in modo esplicito.
Sto scrivendo questo in Java, che non conosco molto bene. Sembra che non posso sottoclasse Double
.
Come dovrei andare su questo? Immagino di poter definire le mie classi Metres
e Feet
, ma perderei i vantaggi dell'annullamento automatico. Se fosse C ++, potrei aggiungere un operator double
e aggiungere sovraccarichi aritmetici per assicurarmi che non sia possibile utilizzare tipi misti, ma sembra che non possa farlo in Java?