Через API Java вы видите многочисленные случаи противоречивых имен и практик, которые действительно меня смущают.
Например:
Класс String имеет закрытую переменную (Integer) по имени count
, которая отслеживает размер строки, однако это возвращает геттер по имени length()
.
Если вы перейдете к любому типу массивов, вместо того, чтобы иметь метод getter для длины, они просто передают переменную через общедоступный аксессор, и ее можно получить с помощью arrayInstance.length
.
Возвращаясь к классу String, у нас есть метод String#getBytes()
, который является геттером, похожим на геттер length()
, однако выполняет немного больше логики, чтобы получить и вернуть значение.
Мне лично создание геттера с префиксом get
кажется излишним, например, я скорее набираю GamePacket#data()
versus GamePacket#getData()
, но я чувствую, что за этим наименованием может быть более глубокое значение, а не просто несоответствие.
Кроме того, почему Array[]
использует getter для length
?
Кто-нибудь был бы любезен, чтобы пролить свет на это для меня?