java - IntelliJ Idea 中无副作用方法未使用结果的警告

标签 java intellij-idea

当我没有将 BigDecimal.divide() 方法的结果分配给变量时,我从 IntelliJ Idea 收到了一个很好的警告:

Result of BigDecimal.divide() is ignored.

我能否以某种方式为我自己的(无副作用)函数获得相同的警告?类似于为我的函数分配 Java 注释。

最佳答案

这是“忽略方法调用的结果”检查。默认情况下,它只报告几个特殊方法,包括 java.lang.BigDecimal 的所有方法。在检查配置中,您可以添加应以这种方式报告的其他类和方法。

enter image description here

“报告所有被忽略的非库调用”复选框选择项目中的所有类。

如果你想使用注释,你可以用 JSR 305 annotation 注释单个方法或整个类。

javax.annotation.CheckReturnValue

从 IDEA 2016.3 开始,您甚至可以使用 error prone annotation

com.google.errorprone.annotations.CanIgnoreReturnValue

从返回值检查中排除单个方法。使用这两个注释,您可以编写如下类:

import javax.annotation.CheckReturnValue;
import com.google.errorprone.annotations.CanIgnoreReturnValue;

@CheckReturnValue
class A {
  String a() { return "a"; }

  @CanIgnoreReturnValue
  String b() { return "b"; }

  void run() {
    a(); // Warning
    b(); // No warning
  }
}

关于java - IntelliJ Idea 中无副作用方法未使用结果的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115736/

相关文章:

在 ubuntu 上的 eclipse 中使用 maven 的 hadoop 核心的 javadocs 和源代码

java - 不可变类中的可变对象字段

unit-testing - Java 测试停留在使用 TestNG 在 Intellij 中实例化测试

intellij-idea - 如何更改 Intellij IDEA 项目导航器布局

java - 在 JScrollPane 中显示 JLayeredPane

java - 为什么要刷新 CharsetDecoder?

java - @FXML注入(inject)中的空指针异常

kotlin - IntelliJ 中 Kotlin REPL 的重复循环中没有新行

java - 通过 Maven 插件执行在 Mojo 之间共享数据

java - Android Studio - 'Cannot resolve symbol' 语法高亮显示错误,尽管构建正常