openjdk.ruOpenJDK на русском

JEP 212: Resolve Lint and Doclint Warnings

Устранение предупреждений lint и doclint

АвторJoseph D. Darcy
ОтветственныйJoe Darcy
ТипFeature
ОбластьJDK
СтатусClosed / Delivered
Выпуск9
Компонентtools
Обсуждениеjdk9 dash dev at openjdk dot java dot net
ТрудоёмкостьM
ДлительностьL
РецензентыBrian Goetz
ОдобренBrian Goetz
Создан2014/05/09 21:55
Обновлён2024/02/05 20:31
Задача8042878

Аннотация

В кодовой базе JDK много ошибок lint и doclint, о которых сообщает javac. Эти предупреждения следует устранить, по крайней мере в фундаментальных частях платформы.

Цели

На практике цель состоит в том, чтобы как минимум пакеты фундаментальных пакетов платформы (тех, что обсуждаются в рассылках core-libs, awt-dev, swing-dev, 2d-dev и др.) компилировались без предупреждений lint и doclint компилятора javac. Желательно, чтобы и другие пакеты, например входящие в JAXP, JAX-WS и CORBA, тоже компилировались без предупреждений при включённых всех предупреждениях.

Критерии успеха

Успешная сборка соответствующих исходных файлов при использовании параметра -Xlint:all для команды javac. Допустимой может оказаться и несколько более слабая цель: включить все параметры lint, относящиеся к исходному коду, но не параметры lint для свойств, не связанных с исходным кодом. Например, некоторые параметры lint касаются свойств командной строки javac, а не компилируемых исходных файлов.

Описание

Этот JEP предлагает завершить работу по исправлению предупреждений, которая велась в JDK 8 и JDK 9, а также формализовать часть улучшений исходного кода, ранее предложенных в рассылке jdk9-dev. Большинство предупреждений устраняется изменением кода внутри тел методов. Устранение некоторых предупреждений rawtypes требует изменения сигнатур методов, например замены типа параметра с «сырого» java.lang.Class на java.lang.Class<?> или какой-либо более конкретный тип. Любые изменения API останутся в рамках общей политики развития JDK.

Тестирование

Основной проверкой для большинства изменений служит успешная компиляция / сборка, но существующие регрессионные тесты должны по-прежнему проходить. Если у API Java SE меняется сигнатура, соответствующий тест сигнатур JCK нужно будет обновить.

Зависимости

Устранить предупреждения об использовании элементов со статусом Deprecated (устаревший) в JDK было бы проще, если бы импорт типа со статусом Deprecated не вызывал такого предупреждения.