This program:
import java.util.ArrayList;
import java.util.List;
class X {
@SafeVarargs
static void m(List<String>... ls) {
Object[] o = ls; // 2 warning here
o[0] = new ArrayList<Integer>();
System.out.println(o);
}
}
Generates two 'varargs' warnings when compiled with the -Xlint:varargs flag enabled.
OUTPUT:
Test.java:7: warning: [varargs] Varargs method could cause heap pollution from non-reifiable varargs parameter ls
Object[] o = ls; // 2 warning here
^
Test.java:7: warning: [varargs] Varargs method could cause heap pollution from non-reifiable varargs parameter ls
Object[] o = ls; // 2 warning here
^
2 warnings