Joshua Bloch explains this in Effective Java (25s chapter):
The prohibition on generic array creation can be annoying. It means,
for example, that it’s not generally possible for a generic type to
return an array of its element type (but see Item 29 for a partial
solution). It also means that you can get confusing warnings when
using varargs methods (Item 42) in combination with generic types.
This is because every time you invoke a varargs method, an array is
created to hold the varargs parameters. If the element type of this
array is not reifiable, you get a warning. There is little you can do
about these warnings other than to suppress them (Item 24), and to
avoid mixing generics and varargs in your APIs.
The reason for this message is described in spec, in this part of spec, there is similar example (with class ArrayBuilder and different combinations of annotation usage)
Like alternative, try to use mix of SafeVarargs and SuppressWarnings annotations
@SafeVarargs
@SuppressWarnings( "varargs" )
HTH