Javac 21 Xlint в Maven не показывает предупреждения о пропущенном идентификаторе серийной версииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Javac 21 Xlint в Maven не показывает предупреждения о пропущенном идентификаторе серийной версии

Сообщение Anonymous »

У меня есть родительский POM Maven, который настраивает плагин компилятора Maven

Код: Выделить всё

org.apache.maven.plugins
maven-compiler-plugin
3.14.0

true
true

-Xlint:all



Проект использует Java 21. Согласно Java 21 Javac Docs, -xlint: All «позволяет все предупреждения». Одно из этих предупреждений: < /p>
: предупреждает о сериализуемых классах, которые не предоставляют идентификатор серийной версии. Также предупреждает о доступе к непубличным членам из сериализуемого элемента.

В проекте я создаю анонимный подкласс, не предоставляя Serialversionuid . (В частности, я создаю экземпляр Jackson Deserializer, новый FromStringDeserializer (foobar.class) {…} < /code>, хотя конкретный класс и библиотека не имеют отношения к этой проблеме.) Eclipse EE 2025-06 Должно ли показаны предупреждение в IDE: < /p>



Однако построение проекта с использованием Maven 3.9.10 с MVN Clean Compile в Windows 10 с Java 24 не показывает никакого предупреждения. PrettyPrint-Override ">

Код: Выделить всё


4.0.0
com.example
serialversionid-check
1.0.0-SNAPSHOT
serialversionid Check


UTF-8
21





org.apache.maven.plugins
maven-compiler-plugin
3.14.0

true
true

-Xlint:all






Вот исходный файл src/main/java/com/пример/test.java , чтобы воспроизвести проблему:

Код: Выделить всё

package com.example;

public class Test {
void test() {
new Number() {
public double doubleValue() {return 0.0;}
public float floatValue() {return 0.0f;}
public int intValue() {return 0;}
public long longValue() {return 0L;}
};
}
}
< /code>
предоставлено, что я не большой поклонник этого предупреждения; И я полностью осознаю, что это устаревший подход к сериализации Java и что следует избегать использования этой устаревшей подсистемы для фактической сериализации. Тем не менее я хотел бы некоторую последовательность в разных средах, и я озадачен тем, почему Javac 
не показывает предупреждения, которые его документация указывает на то, что он должен.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... version-id
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»