Я пытался ознакомиться с записями, но столкнулся с чем-то, что действительно похоже на ошибку в инструменте Java для линтинга JavaDoc -Xdoclint.
Я пытался использовать эту команду...
javac -Xdoclint:all XdoclintDoesntHandleRecordJavadocCorrectly.java
...чтобы проверить мой JavaDoc для этого файла...
/**
*
* Comment.
*
* @param a Comment.
* @param b Comment.
* @param c Comment.
*
*/
public record XdoclintDoesntHandleRecordJavadocCorrectly(
/** Comment. */
int a,
/** b Comment. */
int b,
/** @param c Comment. */
int c
) {}
... который дал мне эту ошибку ...
XdoclintDoesntHandleRecordJavadocCorrectly.java:14: warning: no comment
int a,
^
XdoclintDoesntHandleRecordJavadocCorrectly.java:16: warning: no comment
int b,
^
XdoclintDoesntHandleRecordJavadocCorrectly.java:18: warning: no comment
int c
^
3 warnings
... что не имеет для меня никакого смысла.
Является ли это ошибкой в инструменте Java -Xdoclint? Обычно я бы не стал так быстро предъявлять претензии, но это не первый случай, когда инструмент -Xdoclint содержит ошибки, которые позже исправила Java..
И, наконец, вот моя версия Java.
$ java --version
java 18 2022-03-22
Java(TM) SE Runtime Environment (build 18+36-2087)
Java HotSpot(TM) 64-Bit Server VM (build 18+36-2087, mixed mode, sharing)




Поскольку Пример Javadoc для записей в репозитории OpenJDK выдает такое же предупреждение, это, безусловно, ошибка.
edit: Спецификация языка Java дает подсказку:
For each record component, a record class has a field with the same name as the record component and the same type as the declared type of the record component. This field, which is declared implicitly, is known as a component field.
Таким образом, «без комментариев» вполне может относиться к этому неявно объявленное поле компонента записи класс, которая является результатом записи и не может быть прокомментирована, аналогично выводы из проблемы, на которую вы ссылались.
Большое спасибо! Это хорошо изученный ответ, который хорошо доказывает свою точку зрения. Я хотел убедиться, что не ошибся, прежде чем двигаться вперед. Я бы присудил награду сейчас, но StackOverflow говорит мне, что мне нужно подождать 18 часов.
Еще раз спасибо! Я собираюсь сообщить об этом в Oracle как об ошибке и надеюсь, что они исправят это, так же, как они сделали другое.
Хотя сопровождающие, кажется, знают об этом предупреждении и даже включил его в один из интеграционных тестов.