Chúng tôi sử dụng một số hàm varargs và khi chúng tôi chuyển sang java 1.7, chúng tôi nhận được một cảnh báo không được kiểm soát lạ.Chức năng Java 1,7 varargs được báo cáo là cảnh báo không được chọn
Chức năng thêm trong giao diện ICache
public interface ICache<O> {
void add(Object source, O... objects);
}
trong một giao diện báo cáo lỗi.
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 mở rộng Object, làm lớp bộ nhớ cache chung.
Tôi đọc cảnh báo xlint và chúng tôi biên dịch không được chọn, nhưng http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#xlintwarnings dường như ngụ ý rằng lỗi này phải là loại [varargs] không phải là loại không được kiểm soát.
Tôi có thiếu gì đó không?
Chúng tôi có thể xem tất cả các phần liên quan của ICache và SomeClass không? –
Đã chỉnh sửa để thêm nguồn. –
Hãy xem [trang web chính thức của Oracle] (http://docs.oracle.com/javase/7/docs/technotes/guides/language/non-reifiable-varargs.html), nó giải thích ô nhiễm đống ô nhiễm chi tiết , tại sao trình biên dịch Java 7 lại tăng cảnh báo và làm thế nào bạn có thể ngăn chặn nó. – buc