Wir verwenden einige Varargs Funktionen und als wir zu Java 1.7 bewegen wir bekommen eine seltsame ungeprüfte Warnung.Java 1.7 varargs Funktion als unchecked Warnung gemeldet
Funktion in der Schnittstelle ICache hinzufügen
public interface ICache<O> {
void add(Object source, O... objects);
}
in einer Schnittstelle meldet den Fehler.
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 erweitert Object als generische Cache-Klasse.
Ich lese die Xlint Warnungen und wir kompilieren mit unchecked on, aber http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#xlintwarnings scheint zu implizieren, dass dieser Fehler ein [varargs] Typ nicht ein unchecked Typ sein sollte.
Fehle ich etwas?
Können wir alle relevanten Teile von ICache und SomeClass sehen? –
Editiert, um Quelle hinzuzufügen. –
Werfen Sie einen Blick auf [diese offizielle Oracle-Site] (http://docs.oracle.com/javase/7/docs/technotes/guides/language/non-retificable-varargs.html), es erklärt Varals Heap Verschmutzung im Detail Warum löst der Java 7 Compiler eine Warnung aus und wie kann er unterdrückt werden? – buc