2012-06-28 3 views
24

При написании методов в Java (например, в форумах, списках рассылки, трекерах и т. Д.) Многие люди отделяют имя метода от имени класса, используя символ «#» вместо собственного оператора . Java; например, люди относятся к Object#toString вместо Object.toString. Откуда этот синтаксис?Почему некоторые люди используют метод Class # вместо Class.method в переписке?

+2

Точечная обозначение может рассматриваться как код, где в Object.toString 'Object' будет экземпляр или иначе' toString' будет статическим методом. Тире обозначается Javadoc, и это понятно. – maksimov

ответ

21

Это обозначения, используемые в комментариях javadoc при соединении с методом другого класса.

EDIT

Чтобы собрать дополнительную информацию, представленную в комментариях:

  • @Hugo отмечает, что # обозначения в свою очередь, происходит от HTML анкеры
  • @maksimov указывает на то, что Object.method синтаксис Java для вызова статических методов, которые могут вводить в заблуждение

ОБНОВЛЕНИЕ

Java 8 предлагает новый синтаксис для ссылок на методы, которые теперь становятся все более популярными - так Object#toString имеет тенденцию писать Object::toString.

+4

Это, в свою очередь, происходит от HTML-якорей, которые представлены с использованием этой нотации, поскольку каждый метод является якорем, если генерируется HTML-код javadoc. – WhyNotHugo

+0

все имеет смысл. Я могу начать использовать его сейчас, но я должен признать, что это довольно уродливо, и мне становится труднее читать. Но это дает однозначность в случае вызовов статического метода. –

+0

Но что, если объект строчный? –

Смежные вопросы