В чем разница между `.` и` # `в JavaDo c? - PullRequest
3 голосов
/ 10 января 2020

У меня есть эта строка в Javado c вышеуказанным методом:

* {@link client.navigator.URLManager.newToken(NavigationToken)}

и анализатор Intellij IDEA выделяет ее как ошибку:

Невозможно разрешить символ 'client.navigator. URLManager.newToken '

, но если я изменю . на #, это нормально.

* {@link client.navigator.URLManager#newToken(NavigationToken)}

В чем разница? Потому что у меня много мест с . и # в проекте.

Ответы [ 2 ]

7 голосов
/ 10 января 2020

. отделяет части пакета и пакет от класса.

# отделяет имена классов от полей, методов или конструкторов.

Т.е. в client.navigator.URLManager#newToken the client.navigator - это пакет, URLManager - это класс, а newToken - это имя метода.

Можно даже использовать #someMethod для ссылки на методы внутри текущего класса без указания класса (то же самое для полей , ...).

Обратите внимание, что в случае внутренних классов будет несколько имен классов: java.lang.Thread.State является внутренним классом в пакете java.lang, который находится внутри Thread и называется State. Нет никакой разницы в синтаксисе между внутренними классами и классами верхнего уровня, единственный способ распознать эту разницу (без поиска классов) состоит в том, чтобы увидеть, что Thread пишется с большой буквы и, следовательно, вероятно, класс (но Java допускает строчные буквы классы и пакеты в верхнем регистре, даже если соглашения запрещают их).

0 голосов
/ 11 января 2020
Генерация

Javado c обращает внимание на символы "." и "#" при создании ссылок. Ссылки могут указывать на другие страницы Javado c или на местоположение в пределах указанной страницы c Javado c.

Например, вот пример "#" из Integer, который включает этот Javado c директива: {@link java.lang.Integer#toString(int)}. Когда создаются файлы Javado c, эта директива link будет иметь значение HTML, которое указывает на метод toString() на странице "Integer". html (в частности, это: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#toString--), поэтому вы можете go прямо там :

/**
 * Returns a {@code String} object representing this
 * {@code Integer}'s value. The value is converted to signed
 * decimal representation and returned as a string, exactly as if
 * the integer value were given as an argument to the {@link
 * java.lang.Integer#toString(int)} method.
 *
 * @return  a string representation of the value of this object in
 *          base 10.
 */
public String toString() {
    return toString(value);
}

Вот еще один пример с "." символами (без "#") из String, который имеет ссылка ({@link java.text.Collator}), которая генерирует URL (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/Collator.html), который ведет к в верхней части страницы для java .text.Collator :

 * The class {@code String} includes methods for examining

...

 * <p>Unless otherwise noted, methods for comparing Strings do not take locale
 * into account.  The {@link java.text.Collator} class provides methods for
 * finer-grain, locale-sensitive String comparison.

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...