One important thing to keep in mind is that varargs are compiled to create and accept arrays. I.e
void test(Integer... i)
and
void test(Integer[] i)
- . ( . .) :
test(i1, i2, i3);
...
test(new Integer[] { i1, i2, i3 });
.
Integer..., test(null), , null , , Integer , null . , , test(new Integer[] { null }).
int..., test(null), null int, int . , null . test(new int[] { null }), ; test((int[])null). null int[], .