2012-03-05 12 views
7

Como puede ver en la Documentación de Oracle para java.awt.Point, xey se almacenan como int. Sin embargo, getX y getY devuelven double. Si bien hay un método setLocation que toma 2 tipos double, no hay ningún constructor que lo haga. Además, el double se truncará a un int internamente de todos modos.¿Por qué java.awt.Point proporciona métodos para establecer y obtener dobles, pero almacena xey como int?

¿Hay una buena razón para esto? Puede evitar un reparto en setLocation al tener un método que toma los tipos double, pero tiene el problema opuesto cuando llama a getX y getY. También hay una tergiversación de la precisión de la clase Point al devolver double de getX y getY.

Respuesta

7

Porque se extiende desde java.awt.geom.Point2D que se utiliza en la clase abstracta Graphics2D. Fue implementado de esta manera por razones de compatibilidad ya que antes de esto, java solo soportaba java.awt.Graphics donde todos los métodos están basados ​​en int.

Cuestiones relacionadas