Encuesta

¿Qué sistema operativo empleas principalmente cuando desarrollas Java?

28-02-2010 - 471 votos

Destacados Agenda

Más eventos |

(2)

Introducción a JSR-275: Medidas y unidades

04/10/2007 21:45 ecamacho

Jean-Marie Dautelle ha escrito este artículo sobre JSR-275 que busca estandarizar las medidad y sus unidades mediante el uso de clases concretas y extensibles.

Actualmente en Java no existe forma simple de lidiar con las medidas usadas para un mismo fin, en el artículo la autora menciona un error en un software desarrollado para la NASA que costó USD$ 125 millones porque la mitad de los programadores usaron unidades inglesas y la otra unidades métricas. Esta especificación busca una forma consistente para lidiar con las unidades de forma tal que no importa si el input esté en celsius o en fahrenheits, el sistema tomará los valores correctos.  

Por ejemplo, para obtener el peso de una persona se pondría:

 class Person {
void setWeight(Measurable<Mass> weight);
}
De esta forma se podría obtener el valor en la unidad que uno quisiera:
double weightInKg = weight.doubleValue(KILOGRAM);
double weightInLb = weight.doubleValue(POUND);
double wrong = weight.doubleValue(LITER); // Compile Error! 


Como puedes ver, al querer obtener el peso en una unidad que no aplica para Masas, el compilador te informará del error.
La especificación también tiene métodos estáticos para realizar operaciones entre las unidades, por ejemplo la operación KILO multiplica por mil una unidad y ofrece la posibilidad de crear unidades propias, aquí un ejemplo de la autora:

Unit<Pressure> PASCAL = NEWTON.divide(METER.pow(2)).alternate("Pa");
Unit<Duration> HOUR_MINUTE_SECOND = HOUR.compound(MINUTE).compound(SECOND);

Con esta especificación la conversión de unidades las maneja el JDK por lo que podremos estar seguros de que son correctas y consistentes. Todavía no se ha decidido si este JSR será incluido en JDK 7.
Volver a actualidad

Etiquetas: j2se, jsr-275

Comentarios: 4

  • vacax 05/10/2007 03:38

    Excelente agregacion al JDK 7, una solucion a un problema no tan frecuente.

    Saludos

  • intohybrid 05/10/2007 06:31

    puede que no sea un problema frecuente, pero en si es un gran problema y la solucion propuesta no es muy dificil de implementar

  • darkcavie 05/10/2007 15:53

    Pues para nada poco frecuente. En este momento ya estoy estudiando la especificación y revisando la implementación de referencia de JScience porque para mí es de uso inmediato. Trabajo con cosas de comercio exterior y cuestiones de almacenaje, poder convertir entre unidades diferentes y almacenar datos capturado por personas acostumbradas a distintos sistemas de unidades es una gran ventaja para mi. Por supuesto que voy a tratar de meter este framework en el desarrollo que estoy haciendo actualmente.

    Muchas gracias ecamacho por el pitazo.

    Saludos.

  • ecamacho 05/10/2007 20:07

    Por nada darkcavie, que bueno que te haya resultado útil. Si llegas a usarlo en tu proyecto no estaría de más algún artículo en un blog o aquí mismo para que nos cuentes tu experiencia :-P

     

Escribe tu comentario

Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano