Ho una sorta di metodo di util per trasformare un varargs di un tipo in un array di questo tipo - sembra che questo:Questo uso di vararg è sicuro?
public K[] array(K... ks) {
return ks;
}
Il caso d'uso è così che invece di definire una matrice quando si chiama un metodo che richiede un array, puoi semplicemente fare array (val1, val2, val3).
Tuttavia, IntelliJ mi dà avvisi di inquinamento heap. Capisco cosa significa in una certa misura, ma non ho molta esperienza con le specifiche - quindi, vorrei sapere se posso aggiungere @SafeVarargs e se questo metodo è effettivamente sicuro.
IntelliJ dice:
Problema sinossi possibile inquinamento mucchio di parametri di tipo vararg alla linea 249
risoluzione dei problemi Assicurarsi finale e annotare come @SafeVarargs
K è dichiarato come il digitare il parametro di una classe, insieme a V.
IMO non occorre tale metodo, basta usare 'Qualunque sia [] = {whateverArray val1, val2, val3, ...};' –
Puoi dare * * dettagli esatti del warning inquinamento mucchio? E dove è stato dichiarato il parametro di tipo 'K'? –
@Luiggi, sì, ma è un'utilità. 'K [] keys = {key1, key2, key3}; object.method (keys); 'vs' object.method (array (key1, key2, key3)); '- il secondo è molto più facile da scrivere, specialmente quando lo fai molto. – DziNeIT