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

时间:2016-12-13 07:33:22

标签: java intellij-idea

如果我没有将BigDecimal.divide()方法的结果分配给变量,我会收到IntelliJ Idea的警告:

  

忽略BigDecimal.divide()的结果。

我可以以某种方式为我自己的(无副作用)功能发出相同的警告吗?像为我的函数分配Java注释的东西。

1 个答案:

答案 0 :(得分:10)

这是“忽略方法调用的结果”检查。默认情况下,它仅报告几种特殊方法,包括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
  }
}