Инструмент Javadoc создает документацию на основе модификатора доступности. По умолчанию он документирует все классы, поля и методы public
и protected
. Это может быть изменено следующим options:Как работает Javadoc с видимостью модулей в Java 9?
-публичный
показывает только открытые классы и члены.-защищенный
Показывает только защищенные и общедоступные классы и участники. Это значение по умолчанию.-package
Показывает только пакеты, защищенные и общедоступные классы и участники.-private
Показаны все классы и участники.
Java 9 представляет концепцию модулей, а проект Jigsaw применяет его к существующему JDK. talk Марк Reinhold (третий в серии переговоров о модулях) показывает, как модификатор public
теперь имеет различные уровни доступности, в зависимости от видимости модуля (через exports
):
- общественности к каждому
- общественные, но только к конкретным модулям
- общественности только в модуле
Поскольку в настоящее время нет все публичные члены доступны, было бы бессмысленно продолжать с той же схемой генерации Javadoc. Следует документировать только участников, которые подвергаются воздействию «достаточного» уровня.
Является ли модуль Javadoc осведомленным? Есть ли опции команды в дополнение к описанным выше для обработки дополнительного уровня экспозиции? Для публичных членов, которые подвергаются воздействию только определенных модулей, перечисляет ли Javadoc их, как в
public <module1, module2> static void getDefaultThing()
?
Интересный вопрос, особенно, поскольку цель javadoc может быть как внутри, так и внутри (например, разработчики библиотеки/модуля), но также публично (например, пользователи библиотеки/модуля). –
@MarkRotteveel Да. Если бы он был нацелен только на пользователей библиотеки/модуля, я думаю, что только «публичный для всех» будет отображаться, поскольку модули пользователя не могли быть известны во время компиляции библиотеки. Не уверен, что это значит для 'protected'. – user1803551
Кажется, что javadoc каким-то образом оснащен * некоторой * модульной документацией (я не пробовал ни одного из них). 'javadoc --help | grep module' показывает, что есть некоторые опции. Из моего понимания этих команд, которые возможны, есть как-то два типа документации - обычный и/или модули. Возможно, я ошибаюсь ... очень хороший вопрос. – Eugene