繁体   English   中英

在IntelliJ IDEA中禁用Java的自动装箱

[英]Disabling auto-boxing for Java in IntelliJ IDEA

有没有办法如何在IntelliJ IDEA中禁用Java 5和6的自动装箱,以免开发人员在IDE中使用此功能?

我不认为你可以在保持目标编译版本的同时彻底禁用自动装箱 - 这是特定Java版本的一个特性。

您在IntelliJ中可以做的是将自动装箱的检查级别更改为“错误”。 要做到这一点:

  • 转到“设置”>“检查”,然后在搜索栏中键入“拳击”。
  • 单击“自动装箱”。
  • 将严重性设置为“错误”。 这将导致检查测试将任何自动装箱事件报告为错误。 您也应该对自动取消装箱做同样的事情。

更进一步,您可以添加代码检查,这些代码检查在测试代码时运行(PMD,FindBugs,Cobertura等人),如果有任何内容自动装箱或自动取消装箱,将无法进行构建。

如果不使Java成为“非Java”形式,你就无法真正禁用自动装箱; 但是,您可以减少一些最糟糕的自动装箱问题的影响。

代码分析器FindBugs有一些特定的自动装箱规则,以避免自动装箱变得非常棘手的情况。

它们都以“Bx:”标识符开头:

  1. Bx:原始值被装箱,然后立即取消装箱(BX_BOXING_IMMEDIATELY_UNBOXED)
  2. Bx:原始值被装箱然后取消装箱以执行原始强制(BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION)
  3. Bx:盒装值未装箱,然后立即重新装箱(BX_UNBOXING_IMMEDIATELY_REBOXED)
  4. Bx:方法分配一个盒装基元只是为了调用toString(DM_BOXED_PRIMITIVE_TOSTRING)
  5. Bx:Method调用低效的浮点数构造函数; 改为使用静态值(DM_FP_NUMBER_CTOR)
  6. Bx:Method调用低效的Number构造函数; 使用静态值替代(DM_NUMBER_CTOR)

您可以将Findbug报告集成到您的构建中,并根据您使用的构建系统,甚至根据FindBugs发现的问题存在构建抱怨或失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM