Обложка канала

Библиотека Java разработчика

9291 @BookJava

Библиотека Java разработчика. Книги по программированию на Java.

Библиотека Java разработчика

4 года назад
Открыть в
Зачем нужен package-info? Обычно, чтобы создать новый пакет, вы создаете папку с соответствующим названием, и во всех ее .java файлах добавляете в начале строчку с названием пакета, вида package full.dir.path;. Этого вполне достаточно для работы. Однако, дополнительно вы можете добавить в пакет его объявление – файл package-info.java. Несмотря на то, что это .java-файл, это не объявление класса. В названии класса дефисы запрещены, так что неоднозначности не возникнет. Минимальное содержимое файла package-info.java – всё та же строка package full.dir.path;. Такой файл не несет практической пользы. Есть две вещи, которые можно в него добавить, чтобы польза появилась. Первое – документация пакета. Javadoc-комментарий будет использоваться генератором документации. Пример – описание пакета java.lang. Его исходник вы можете найти в файле java/lang/package-info.java. Второе возможное применение – аннотации уровня пакета. Для этого аннотация должна иметь Target PACKAGE. Например, некоторые пакеты Spring Framework помечены аннотацией @NonNullApi. Подробно объявления пакетов описаны в главе 7.4.1 спецификации. #jvm 👉@BookJava