我们使用了一些可变参数函数,当我们迁移到 java 1.7 时,我们会收到一个奇怪的未经检查的警告。
接口ICache中的函数添加
public interface ICache<O> {
void add(Object source, O... objects);
}
在一个界面报告错误。
ICache.java:18: warning: [unchecked] Possible heap pollution from parameterized vararg type O
void add(Object source, O... objects);
where O is a type-variable:
O extends Object declared in interface ICache
1 warning
O 扩展了 Object,作为它的通用缓存类。
我阅读了 xlint 警告,我们在未选中的情况下进行编译,但http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#xlintwarnings似乎暗示这个错误应该是[varargs] 类型不是未经检查的类型。
我错过了什么吗?