【问题标题】:Missorted modifiers on annotations since moving to spring boot 2自从移至 Spring Boot 2 以来,注释上的修饰符错误
【发布时间】:2019-09-23 11:32:09
【问题描述】:

我将我的项目从 Spring boot 1.5 迁移到 Spring boot 2。 这样做之后,我在每个实现 @NotNull 注释的字段上都有一个 Missorted 修饰符 @NotNull private(来自 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;

我想保持第二个示例中的格式,它比上面的更易读。当然在使用多个字段时。

【问题讨论】:

  • 只是为了确定,这是哪个确切的 NotNull 注释?它来自哪个包?
  • 是关于javax.validation.constraints.NotNull的,忘了说,我的错!

标签: java spring-boot intellij-idea annotations spring-boot-2


【解决方案1】:

从 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>

显然,这在使用 spring boot 依赖时已经改变了:

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

长话短说:我们将不得不习惯于使用 TYPE_USE 和 TYPE_PARAMETER 元素类型进行注释

我只是不得不花更多的时间搜索,因为沮丧而在这里问...

【讨论】:

  • 您可以在检查的设置中取消选中“要求注释在关键字之前排序”复选框,它不会警告错误的注释,而只会警告错误的修饰符。
【解决方案2】:

“Missored modifiers”是默认禁用的 IntelliJ IDEA 检查。如果启用它,默认情况下它需要在修饰符之前放置注释,但它有一个选项可以启用相反的行为。看起来您的项目有一个共享的检查配置文件,其中有人启用了此检查并关闭了“要求在关键字之前对注释进行排序”选项。您可以转到设置 |检查并搜索“错误的修饰符”以禁用检查或更改其报告警告的方式。

【讨论】:

  • 我不想禁用此功能,因为它还会告诉我何时将修饰符以错误的顺序放置,例如private final static 而不是 private static final 这发生在我们最好的人身上
猜你喜欢
  • 1970-01-01
  • 2017-11-20
  • 2023-03-15
  • 2019-05-01
  • 2019-06-25
  • 2018-12-27
  • 2015-05-20
  • 2017-11-22
相关资源
最近更新 更多