Я использую IntelliJ IDEA с javac на JDK 1.8. У меня есть следующий код:
class Test<T extends Throwable>
{
@SafeVarargs
final void varargsMethod( Collection<T>... varargs )
{
arrayMethod( varargs );
}
void arrayMethod( Collection<T>[] args )
{
}
}
IntelliJ IDEA не выделяет ничего в приведенном выше коде как предупреждение. Однако при компиляции следующая строка появляется на вкладке "Сделать" в представлении "Сообщения":
Предупреждение: (L, C) java: метод Varargs может вызвать загрязнение кучи от невосстанавливаемый параметр varargs varargs
Примечание №1: Я уже указал @SafeVarargs
.
Примечание # 2: Warning:(L,C)
указывает на varargs
передается как аргумент arrayMethod()
Предполагая, что я знаю, что я делаю, и полагаю, что я уверен, что не будет никакого загрязнения кучи или я обещаю, что я не буду называть этот метод каким-то напуганным способом, который может привести к загрязнению кучи, что мне нужно сделать, чтобы подавить это предупреждающее сообщение?
ПРИМЕЧАНИЕ.. Существует множество вопросов о stackoverflow относительно методов varargs, но, похоже, что нет этой проблемы. На самом деле, весь interwebz, кажется, довольно беден в ответах на этот конкретный вопрос.