Intellij Idea 如何全局禁止显示警告(@SupressWarnings)?

mwkjh3gx  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(181)

我不确定这是IntelliJ的东西还是Java的东西。
我做了一个实用方法,Assert抛出特定类型的异常:

public static <T, U extends Throwable> Throwable assertThrowsWithCause(
      Class<T> expectedOuterExceptionType,
      Class<U> expectedInnerExceptionType,
      Executable executable) {
    Exception outerException = assertThrows(Exception.class, executable);
    assertEquals(expectedOuterExceptionType, outerException.getClass());
    assertEquals(expectedInnerExceptionType, outerException.getCause().getClass());
    return outerException.getCause();
  }

它的用法是这样的:

@Test
  public void getMeasurementsConfig_configDoesNotExist() {
    when(configManager.getConfig(sampleUUID.toString()))
        .thenReturn(CompletableFuture.failedFuture(new NotFoundException("")));
    assertThrowsWithCause(
        CompletionException.class,
        NotFoundException.class,
        () -> configController
            .getMeasurementsConfig(Context.ROOT, sampleRequest)
            .toCompletableFuture().join());
  }

但是在方法调用上有一个警告:
未引发“assertThrowsWithCause()”的结果
我知道我可以通过添加

@Test
  @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
  public void ...

调用方法上。但这意味着我必须将它添加到许多文件中的每个测试中。我如何在全局范围内抑制此警告,以这种方式,它将被抑制的每个人都在项目上工作,* 即 * 不只是在我的本地IntelliJ设置?我试着抑制调用的方法,* 即 *。

@SuppressWarnings("ThrowableResultOfMethodCallIgnored")
  public static <T, U extends Throwable> Throwable assertThrowsWithCause(

但这没有产生相同的效果。

j8ag8udp

j8ag8udp1#

这不是来自javac的警告,而是IntelliJ Inspection。检查的名称是“'可扔'不扔”。
您可以使用上下文操作菜单(出现的灯泡)找到检查的名称,然后单击相关上下文操作旁边的三个点:

要在项目范围内禁用它,只需在“设置”中搜索名称并取消选中复选框:

在javac发出警告的情况下,可以向javac传递-Xlint选项(参见this answer)。

相关问题