Должен ли я получить доступ к int напрямую или получить двойник из геттера и разыграть его? - PullRequest
4 голосов
/ 06 марта 2012

Как описано в Почему java.awt.Point предоставляет методы для установки и получения значений типа double, но сохраняет значения x и y как int? В классе Java java.awt.Point нет метода get, который возвращаетint.Тем не менее, вы можете получить доступ к x и y напрямую, оба типа int.

С учетом сказанного, какое из 2 зол меньше?

Point location = this.getLocation();
int locX = (int)location.getX();
int locY = (int)location.getY();

или

Point location = this.getLocation();
int locX = location.x;
int locY = location.y;

Я стараюсь придерживаться стандартной практики использования методов получения (методов доступа), когда это возможно, но в этом сценарии требуется приведение.Я могу избежать приведения, но я должен получить доступ к полям x и y напрямую.Предполагая, что внутренне getX и getY просто приводят int к double, а затем я возвращаю его обратно к int, это кажется неправильным.

1 Ответ

4 голосов
/ 06 марта 2012

Метод прямого доступа несколько эффективнее и выглядит лучше.Технически плохая практика - избегать методов get / set, если они существуют, но в этом случае я думаю, что вы должны сделать исключение.

...