@SuppressWarnings用于调用带有un-cast null的varargs

时间:2013-03-30 16:02:28

标签: java junit4 variadic-functions suppress-warnings

我应该在@SuppressWarnings("....")中使用什么字符串来删除我在使用varargs的方法的单元测试中得到的警告:

/**
 * 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 []   从中调用varargs方法readFiles(String,String ...)   键入TestVarArgs。也可以将它转换为String   varargs调用

这很好;这是预料之中的。我也是单元测试当我抛出null时会发生什么。

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

2 个答案:

答案 0 :(得分:2)

据我了解,这不是您可以使用特定注释抑制的警告。你必须进行明确的演员才能使警告消失 - 或者禁止所有警告。

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

答案 1 :(得分:0)

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