【问题标题】:@SuppressWarnings for the invocation of the varargs with un-cast null@SuppressWarnings 用于使用未强制转换的 null 调用可变参数
【发布时间】:2013-03-30 16:02:27
【问题描述】:

我应该在@SuppressWarnings("....") 中使用什么字符串来消除我在这个带有可变参数的方法的单元测试中得到的警告:

/**
 * Calling {@link #readFiles(String, String...)} with just one arg and a null
 * works, but you have to do a null check on the varargs in case it is null.
 */
@Test
public void callMethodWithOneArgAndNull() {
   readFiles("C:/Temp", null);
}

Eclipse 对此给出以下警告:

null 类型的参数应该显式转换为 String[] 从调用可变参数方法 readFiles(String, String...) 键入 TestVarArgs。也可以将其转换为 String 可变参数调用

这很好;这是意料之中的。我也在单元测试当我转换 null 时会发生什么。

但是为了这个单一测试的目的,我想禁止那个特定的警告,即我不想使用@SuppressWarnings("all")。我已经尝试了this answerWhat is the list of valid @SuppressWarnings warning names in Java? 中提到的每个字符串,但似乎没有一个能捕捉到这个警告。

【问题讨论】:

    标签: java junit4 variadic-functions suppress-warnings


    【解决方案1】:

    据我了解,这不是您可以使用特定注释抑制的警告。您必须进行显式强制转换才能使警告消失 - 或禁止所有警告。

    另外,请考虑测试两种可能的类型转换,即(String[]) {null}(String) null,以确保您的方法不会因“无文件”或“空文件名”输入而阻塞。

    【讨论】:

    【解决方案2】:

    您可以使用@supresswarnings(未选中)注解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多