Utilizziamo alcune funzioni varargs e mentre ci spostiamo su java 1.7 viene visualizzato uno strano avviso non controllato.Funzione varargs Java 1.7 segnalata come avviso non controllato
funzione Add interfaccia Icache
public interface ICache<O> {
void add(Object source, O... objects);
}
in un'interfaccia segnala l'errore.
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 estende Object, come classe di cache generica.
Ho letto gli avvisi xlint e lo compiliamo con deselezionato, ma http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#xlintwarnings sembra implicare che questo errore dovrebbe essere un tipo [varargs] non un tipo non controllato.
mi sto perdendo qualcosa?
Possiamo vedere tutte le parti rilevanti di ICache e SomeClass? –
Modificato per aggiungere la fonte. –
Dai un'occhiata a [questo sito ufficiale di Oracle] (http://docs.oracle.com/javase/7/docs/technotes/guides/language/non-reifiable-varargs.html), spiega l'inquinamento da cumuli di heap in dettaglio , perché il compilatore Java 7 genera un avviso e come puoi sopprimerlo. – buc