Пропущенные модификаторы в аннотациях с момента перехода на весеннюю загрузку 2 - PullRequest
0 голосов
/ 23 сентября 2019

Я перенес свой проект из Spring boot 1.5 в Spring boot 2. После этого у меня в каждом поле есть модификаторы Missorted @NotNull private, реализующие аннотацию @NotNull (из javax.validation.constraints.*. Это предупреждение исчезает при переключении ветви обратно на 1.5

Я попытался отключить все плагины на intelij и удалить пользовательскую конфигурацию, которая была у меня для стиля кода и проверки. Только достоверная информация, найденная при поиске по предупреждению об этом типе ошибки, говорит о том, что Intelij использует "язык Javaспецификации ", но, глядя на них, кажется, что это должны быть аннотации, за которыми следуют модификаторы, а не наоборот. (https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.3.1)

// This does not give a warning
private @NotNull String myString1;

// This does give a warning, wanting me to reformat to the one above
@NotNull
private String myString2;

Я хочу сохранить форматирование, как во втором примере,он более читабелен, чем приведенный выше. Конечно, при использовании нескольких полей.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Начиная с Java 8, был введен TYPE_USE Annotation.Element_type, это меняет способ использования аннотации (и ее поведение).Из-за этого теперь он отформатирован иначе, здесь можно найти краткое описание: https://dzone.com/articles/java-8-type-annotations. Обновление до Spring boot 2 Я также обновил

<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.1.0.Final</version>
</dependency>

до

<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>2.x.x</version>
</dependency>

По-видимому, это уже было изменено при использовании зависимости при загрузке пружины:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

Короче говоря : нам придется привыкнуть к этому для аннотаций с использованием TYPE_USE и TYPE_PARAMETER ElementTypes

Мне просто пришлось потратить еще немного времени на поиски, спросил это здесь из-за разочарования ...

0 голосов
/ 23 сентября 2019

«Пропущенные модификаторы» - это проверка IntelliJ IDEA, которая по умолчанию отключена.Если вы включите его, по умолчанию он требует размещения аннотаций перед модификаторами, но у него есть возможность включить противоположное поведение.Похоже, ваш проект имеет общий профиль проверки, где кто-то включил эту проверку и отключил опцию «Требовать, чтобы аннотации были отсортированы до ключевых слов».Вы можете перейти в Настройки |Проверка и поиск "Missorted modifiers", чтобы отключить проверку или изменить способ выдачи предупреждений.

...