Почему java.awt.Point предоставляет методы для установки и получения значений типа double, но хранит x и y как int? - PullRequest
7 голосов
/ 05 марта 2012

Как вы можете видеть в документации Oracle для java.awt.Point , x и y сохраняются как int.Однако getX и getY возвращают double.В то время как есть метод setLocation, который принимает 2 double типов, не существует конструктор, который делает.Кроме того, double в любом случае усекается до int.

Есть ли для этого веская причина?Вы можете избежать приведения на setLocation, имея метод, принимающий типы double, но у вас возникает противоположная проблема при вызове getX и getY.Также есть искажение точности класса Point, возвращая double из getX и getY.

1 Ответ

7 голосов
/ 05 марта 2012

Потому что он происходит от java.awt.geom.Point2D, который используется в абстрактном классе Graphics2D. Он был реализован таким образом из соображений совместимости, поскольку до этого java поддерживал только java.awt.Graphics, где все методы основаны на int.

...