2013-03-30 3 views
0

Что строка следует использовать в @SuppressWarnings("...."), чтобы убрать предупреждение, я получаю в этом единичном испытании метода с переменным числом аргументов:@SupressWarnings для вызова из списков параметров с ООН литом нулем

/** 
* 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, дают следующее предупреждение для этого:

аргумента типа нуля должен явно привести к типу String [] для призывания методы readFiles переменных аргументов (String, String ...) от TestVarArgs типа. В качестве альтернативы он может быть отлит в String для вызова varargs

Это хорошо; это ожидаемо. Я также тестирую блок, что происходит, когда я делаю null.

Но для целей этого единственного теста я хочу подавить это конкретное предупреждение, то есть я не хочу использовать @SuppressWarnings("all"). Я пробовал каждую строку, указанную в this answer, до What is the list of valid @SuppressWarnings warning names in Java?, и никто из них, похоже, не заметил этого предупреждения.

ответ

1

Насколько я понимаю, это не предупреждение, которое вы можете подавить с помощью конкретной аннотации. Вы должны сделать явное приведение, чтобы предупредить об исчезновении - или пресечь все предупреждения.

Кроме того, рассмотрите возможность тестирования как возможных отливок, то есть (String[]) {null}, так и (String) null, чтобы убедиться, что ваш метод не задыхается над «никакими файлами» или ни в каком «нулевом имени файла».

+0

Хорошие указатели @einpoklum, спасибо. Я написал эти тесты здесь: http://robertmarkbramprogrammer.blogspot.com.au/2013/03/nulls-and-varargs.html –

0

Вы можете использовать аннотацию @supresswarnings (unchecked).