Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Новые функции и возможности в Javadoc 1.4

Этот документ описывает изменения, произведенные в инструменте Javadoc между версиями 1.3 и 1.4. Можно также видеть краткий список выдающихся ошибок, перечисленных в важных новых ошибках и регрессах, и можно просмотреть списки от нашей базы данных в Важных Исправлениях ошибок и Изменениях.

Сводка Новых Тегов и Опций

Вот краткая сводка новых тегов и опций. Новые Теги
{@linkplain}, {@inheritDoc}, @serial, {@value}

Новые Опции
-breakiterator, -docfilessubdirs -exclude, -excludedocfilessubdir -nocomment, -noqualifier, -quiet, -source, -linksource, -subpackages, -tag, -taglet

Возможные Несовместимости

Следующие изменения могут влиять на способ, которым Ваши существующие комментарии документа интерпретируются или выводятся на экран:

Выполнение Javadoc

Включает изменения, которые влияют на параметры командной строки, ошибки и предупреждения. Добавленный -subpackages опция, чтобы рекурсивно пересечь все подпакеты, передавая в единственном корне пакета. -exclude опция безоговорочно исключает пакеты из списка пакетов к документу, даже если это было бы иначе включено некоторыми предыдущими или позже -subpackages флаг командной строки. Например, -subpackages java -exclude java.lang.ref включал бы java.io, java.util, и java.lang (среди других), но не java.lang.ref. (4074234)

Добавленный"-source 1.4"опция для утверждений - Этот код документов опции, который был скомпилирован, используя"javac -source 1.4", необходимый для кода, который содержит утверждения. (4400430)

Добавленные открытые методы, чтобы вызвать инструмент Javadoc изнутри Java - Добавленный программируемый интерфейс к инструменту Javadoc в com.sun.tools.javadoc. Основной (следовательно, стандарт doclet был сделан повторно используемым). Для получения дополнительной информации см. Стандартный Doclet. (4113483)

Предупреждающие сообщения и сообщения об ошибках теперь содержат имя файла и номер строки. Номер строки к строке объявления, а не к определенной строке в комментарии документа. Использование SourcePosition class. (4396665)

Сериализированные улучшения страницы формы - Javadoc теперь включает частные классы в сериализированную страницу формы (не требуя -private флаг). Это означает, что сериализированная страница формы может быть должным образом сгенерирована в нормальном выполненном Javadoc. Это было сделано, добавляя метод PackageDoc.allClasses(boolean filter) где частные и частные на пакет классы включаются когда filter ложь. (Информация, Определенная для API Doclet) метод writeReplace() теперь включается в сериализированную страницу формы. Javadoc также теперь смотрит на"@serial include"и"@serial exclude"теги и включают или исключают классы соответственно. Для получения дополнительной информации см. @serial тег. (4290079, 4180839, 4341304)

Задокументированный @files чтобы работать с параметрами командной строки так же как именами файлов, Это изменяет документацию, чтобы соответствовать реализации. @files функция была первоначально задокументирована в javadoc и javac, чтобы позволить только имена файлов, не параметры командной строки. Это разворачивает документацию, чтобы сказать это @files также позволяет параметры командной строки. (Также переименованный @files к @argfile в документации, чтобы прояснить это - файл параметров.) (4469119)

Добавленный -quiet опция, чтобы отключить несообщения об ошибках
Только предупреждения и ошибки кажутся, делая их легче найти. (4217345)

Стандарт doclet печатает свой номер версии в его потоке вывода. Подавленный -quiet опция. (4114089)

Автоматически создайте целевой каталог (-d). Так как первичная функция javadoc должна создать файлы и каталоги, кажется разумным создать корневой целевой каталог также. (4464477)

Документ только юридические классы - документируя пакет, Javadoc больше не читает файлы, имена которых не составляются из юридических имен class. Пример: передавая com.sun.foo в Javadoc это имело обыкновение анализировать каждый файл в каталоге com\sun\foo чье имя, законченное ".java", было ли имя файла, лишенное того суффикса, фактически юридическим именем class. Теперь Javadoc проанализирует только файлы, имена которых являются юридическими именами class. Это позволяет разработчикам включать шаблоны, протестировать исходные файлы, или другие.java файлы, которые не будут задокументированы, включением, например, дефисом "-" в его имени файла. (4398440)

Фиксированный -linkoffline разделитель '/' - работая на Microsoft Windows, -linkoffline опция теперь должным образом вставляет'/'вместо'\'в каждой ссылке, которая указывает на внешний class. Вызванные неработающие ссылки этой ошибки на внешние классы, когда документация, которая создавалась Javadoc на Windows, была тогда просмотрена на Unix. (4359874)

Удаленный транзитный "-1.1" опции -"-1.1" опции были представлены в версии 1.2 как doclet, чтобы обеспечить путь перехода от Javadoc 1.1 к 1.2. Этот переход не необходим для того, чтобы переместиться в 1.3. "1.1" doclet не обрабатывали новые функции языка (такие как внутренние классы), и из-за совместно используемого кода со стандартом doclet был препятствием для обслуживания. (4312499)

Запись Комментариев Документа

Включает изменения, которые влияют, как комментарии документа пишутся, такие как новые теги. Добавленный интерфейс тега для пользовательских тегов
Можно создать и использовать свои собственные теги - оба нормальных автономных тега, подобные @return, и встроенные теги, подобные {@link}. В обоих случаях, порядок -tag и -taglet опции определяют порядок, они выводятся. Можно смешать эти опции со стандартными тегами"-tag return", "-tag param"чтобы вкрапить их.

Для пользовательских встроенных тегов следует создать taglet. (4282805)

Отметьте любые неизвестные теги, печатая пользовательские теги. Это - часть пользовательского механизма тега. Когда javadoc анализирует комментарии документа, любой тег, с которым встречаются, который не является или стандартным тегом или передал в с - тег или-taglet считают неизвестными, и предупреждение бросается. (4039014)

Опуская ведущую звездочку (*), сохраните добавление отступа в пределах <PRE> теги. Это позволяет Вам вставить примеры кода непосредственно в комментарий документа. Добавление отступа относительно левого поля (а не разделитель /**). (4232882)

Добавленный -breakiterator для нового способа определить конец первого предложения. Мы планируем изменить алгоритм для того, чтобы определить конец первого предложения в следующем выпуске основной функции. -breakiterator опция дает Вам предварительный просмотр нового алгоритма. В 1.2 и 1.3, java.text. BreakIterator class использовался, чтобы определить конец предложения для всех языков, но английского языка (4165985). У английского языка был свой собственный алгоритм, который искал период, сопровождаемый пространством. Когда -breakiterator опускается, конец первого предложения неизменен от 1.2 и 1.3, но предупреждения испускаются, выводя на экран, где было бы различие. Используя -breakiterator использует новый алгоритм. Различия в алгоритмах обнаруживаются на английском языке следующим образом: (4165985)

Фиксированный Javadoc, чтобы больше не потребовать тел метода. - Можно теперь выполнить javadoc на.java исходных файлах, которые являются чистыми тупиковыми файлами без тел метода. Это означает, что можно записать комментарии для документации и выполнить Javadoc на ранних стадиях проекта, создавая API, прежде, чем записать реализацию. Ранее, javadoc жаловался, попытались ли Вы сделать это, настаивая, чтобы Вы добавили "краткий обзор" к методам и классам.

Добавленный {@linkplain}, версия простого текста {@link}. Метка ссылки выводится на экран в шрифте кода, а не простом тексте. Полезный, когда метка является простым текстом. (4429628)
Пример:

        Refer to {@linkplain add() the overridden method}.

Добавленный {@inheritDoc} тег для того, чтобы наследовать документацию. Этот тег копирует комментарий документа с суперкласса в текущий комментарий документа. Это позволяет разработчикам писать вокруг скопированного текста, а не иметь наследованный текст быть единственным текстом. Ранее, текст был скопирован, только если комментарий отсутствовал. (4186639)

Javadoc тегирует @return, @param, и @throws теперь индивидуально наследованы. В 1.3, они были бы наследованы, только если весь комментарий документа был пуст. Тег @see также наследован, но только если нет никаких тегов @see в элементе переопределения. (4496270)

@throws документация копируется от переопределенного метода до подкласса только, когда исключение явно объявляется в переопределенном методе. В 1.3, @throws текст был бы скопирован в метод переопределения, мог ли бы тот метод фактически бросить это execption. Это новое поведение может удалить некоторую документацию, которую должным образом наследовал @throws. Можно использовать {@inheritDoc} вызвать @throws наследовать документацию. (4317583)

Выходной Контент

Включает синтезируемый текст, изображения, расположение, форматируя и ссылки. Включает значения статических полевых констант - Javadoc теперь документирует значения постоянных полей. Те значения появляются на отдельной странице Постоянных величин, достижимый от "См. также: Постоянные величины" соединяются каждым статическим полем. Новый встроенный тег {@value}, когда использующийся в статическом полевом комментарии, возвращает его значение. Этот тег полезен для вставки значения в комментарий документа. (4422788)

Это изменение потребовало добавления к API Doclet методы FieldDoc.constantValue() и FieldDoc.constantValueExpression() в пакете com.sun.javadoc. (Информация, Определенная для API Doclet) (4320557)

Добавленный -noqualifier опция, чтобы опустить квалифицировать имя пакета от перед class называет в выводе
Предыдущее поведение было следующие: На странице для class p. C, добавьте, что пакет называет только к классам, не принадлежащим пакету p. Параметр -noqualifier любой"all"(все спецификаторы пакета опускаются), или отдельный от двоеточия список пакетов, с подстановочными знаками, чтобы быть удаленным как спецификаторы (такие как "Java lang:java.awt:javax. *"). (4359889)

Добавьте ссылки к исходному коду, используя -linksource опция
Создает версию HTML каждого исходного файла и добавляет ссылки им из нормальной документации. (Именованный -src в Бете 2. Переименует это к -linksource в окончательной версии, чтобы лучше дифференцировать это от -source.) (1242492)

Помещенный текущий class или пакет называют сначала в окне title.
Это позволяет имени появиться в панели задач Windows, когда окно минимизируется. (Также работы в Internet Explorer, когда фреймы включаются.) (4232597)

Генерируйте страницу пакета, передавая в исходных именах файлов (*.java). Документы, которые сгенерированы, не должны несколько отличаться, передавая на имена пакета, передавая в исходных именах файлов для классов в тех пакетах. (4359386)

Помещенное исключение ссылка class в разделе бросков в двух случаях:
(1) там a @throws тег, но никакой текст сопровождает тег
(2) если исключение объявляется, но нет никакого тега (4074202)

Добавленный -nocomment подавить описание и теги, генерируя только объявления. Позволяет снова использовать исходные файлы, первоначально предназначенные в различной цели. (4464558)

Ошибочный статус выхода - Фиксированный javadoc, чтобы использовать статус выхода doclet. (4136558)

Используйте - кодирование опции, читая package.html. (4463408)

Добавленный "Все Классы" панели навигации для улучшенной доступности (4140824)

Файлы документа каталога теперь копируются, передавая в.java файлах - передавая в исходных файлах (*.java) к Javadoc, он теперь копирует каталоги "файлов документа" в место назначения. (Прежде, каталоги "файлов документа" не были скопированы.) Это поведение теперь идентично этому, передавая на имена пакета. (4340814)

Фиксированный каталог файлов документа в документе базируется, чтобы быть скопированным в место назначения.
Это позволяет включению документации на уровне краткого обзора быть включенным. (4256505)

Добавленный -docfilessubdirs чтобы включить глубокой копии файлов документа - Подкаталоги каталога "файлов документа" теперь рекурсивно копируются в место назначения когда -docfilessubdirs используется. Например, doc-files/example/images и все его содержание было бы теперь скопировано. Если Вы нуждаетесь в этом, эта опция также доступна: -excludedocfilessubdir name1>:<name2>... исключить любые подкаталоги файлов документа с именами. Это предотвращает копирование SCCS и других подкаталогов управления исходным кодом. Ранее, только файлы непосредственно в "файлах документа" были скопированы. (4385048)

Фиксированный {@docroot} во фрейме HTML - {@docroot} тег теперь должным образом разрешается, когда это появляется в верхнем левом фрейме HTML (overview-frame.html). (4365290)

Фиксированный {@docroot} в @see - {@docroot} тег теперь должным образом разрешается, когда это появляется в тексте @see тег. (4416364)

Фиксированный {@link} с {@docRoot} - {@docRoot} тег больше не отключает никого {@link} тег, который следует за этим в том же самом комментарии. (4369014)

Заголовок "Реализаций" - комментарий документа, наследованный от абстрактного метода теперь, использует надлежащий подзаголовок "реализации", а не "переопределения". (4318787)

Фиксированный "Класс с реализацией" на странице интерфейса - Исправленная ошибка на странице интерфейса, где некоторые классы не обнаруживались как "реализация class". (4378491)

Фиксированный дисплей статических инициализаторов - инициализатор static {...} вызванный "Методы, Наследованные От" таблицы, чтобы запуститься с запятой (). Базовая ошибка была этим javadoc, который рассматривают static {} быть анонимным методом. Это больше не будет появляться как запись метода в сгенерированных документах. (4136861)

Должным образом поля документа и методы для частных внутренних классов. (445611)

Исправленные "вложенные классы" терминология - Javadoc теперь используют термин "вложенные классы", а не "внутренние классы" всюду по его заголовкам и подзаголовкам. Определения: "Вложенным class является любой class, объявление которого происходит в пределах тела другого class или интерфейса." в то время как "Внутренним class является вложенный class, который не статичен." Поэтому, "вложенный" более общий термин. (4307151)

API Doclet

Информация, Определенная для API DocletAPI Doclet больше не сериализуем. - Классы больше не расширяются сериализуемый. (Было бы невозможно, вообще, должным образом сериализировать их.) (4125581)

Информация, Определенная для API Doclet Представьте имя файла и номер строки объявлений. Новый class SourcePosition был добавлен к API Doclet, так же как новому методу position() в Doc и Tag (см. 4192783). Они включают полному разложению и реконструкции исходных файлов. (4192783, 4208989)

Информация, Определенная для API Doclet Добавленный MethodDoc.overriddenMethod() для того, чтобы возвратить список методов, которые переопределяются.

Информация, Определенная для API Doclet Улучшенная документация API Doclet.

Информация, Определенная для API Doclet Потенциальная несовместимость - Tag у интерфейса теперь есть a position() метод. Doclets, которые реализуют 1.3 Tag интерфейс (такой как MIF Doclet 1.2 Беты 1) не будет работать с Javadoc 1.4.

Стандартное Изменение Кода Doclet

Стандарт doclet кодирует изменение - В стандарте doclet исходный код, добавленный a configuration параметр MessageRetriever подпись конструктора. Это может влиять на код, который разделяет стандарт на подклассы doclet. Новый конструктор теперь MessageRetriever(Configuration configuration, String resourcelocation) (Никакое число ошибки)

Фронтэнд Инструмента Javadoc

Есть много изменений к инструменту Javadoc, описанному в других разделах; самый известный упоминается здесь.

Полная перереализация инструмента Javadoc и API (4400430): - Javadoc теперь использует новый javac компилятор вместо старого.

Известны несколько изменений в поведении. Они не ошибки и никогда не будут, вероятно, "фиксироваться" в javadoc:

Некоторые далее известные примеры неправильного поведения старого javadoc преднамеренно воспроизводятся в новой javadoc реализации для совместимости. Например, если class a. Внутренних классов и Вы импортируете их использование:

        import a.A.*;
Старый Javadoc неправильно сообщил бы (через API Doclet) об импорте:
        import a.*;
Нет никакого способа корректного выражения этого объявления импорта с током javadoc API.

Экземпляры ClassDoc больше не уникальны - До 1.4.0, каждый задокументированный class был представлен единственным экземпляром ClassDoc - это было недокументированной деталью реализации. С 1.4.0, это больше не истина - инструмент Javadoc способен к созданию двух различных экземпляров ClassDoc, которые представляют тот же самый class. Это повредило бы любой doclets, который по ошибке полагался на этот факт. Одна такая ошибка была 4496290: - опция использования строго повреждается.


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами