我理解当使用具有泛型类型的varargs时,Java 7会发生这种情况;
但我的问题是......
当Eclipse说"它的使用可能会污染堆?"时,Eclipse到底意味着什么呢?
和
新@SafeVarargs
注释如何阻止这种情况?
我终于试图摆脱Java 7所产生的所有新编译器警告.我这两个人离开了,我无法理解.有没有办法摆脱它们而不压制它们?
构造一般类型的对象数组(我可以在数组中创建一个?):
static final int N = 10;
//warning: [unchecked] unchecked conversion
static final Set<Widget>[] queued = new ConcurrentSkipListSet[N];
//required: Set<Widget>[]
//found: ConcurrentSkipListSet[]
Run Code Online (Sandbox Code Playgroud)
通用varargs(似乎几乎发生在我接受泛型类型的varargs的地方):
class Foo<T> {
//warning: [unchecked] Possible heap pollution from parameterized vararg type T
public void add(T... entries) {
//where T is a type-variable:
//T extends Object declared in class Foo
Run Code Online (Sandbox Code Playgroud)
顺便说一句:我已经:
// Add many entries to the list.
public void add(List<T> entries) {
// ...
}
// Add a number of entries.
public void add(T... …
Run Code Online (Sandbox Code Playgroud)