Il est plutôt sûr d'ajouter l'annotation @SafeVarargs
à la méthode lorsque vous pouvez contrôler la façon dont elle est appelée (par exemple, une méthode privée d'une classe). Vous devez vous assurer que seules les instances du type générique déclaré sont passées à la méthode.
Si la méthode est exposée à l'extérieur sous forme de bibliothèque, il devient difficile de détecter de telles erreurs. Dans ce cas, il est préférable d'éviter cette annotation et de réécrire la solution avec un type de collection (par exemple, Collection>
) en entrée au lieu de varargs (Type1...
).
Quant à la dénomination, le phénomène de la pollution du tas est assez trompeur à mon avis. Dans la documentation, le véritable tas JVM n'est même pas mentionné. Il y a une question sur Software Engineering qui contient des réflexions intéressantes sur la dénomination de ce phénomène.
9 votes
Détails ici : docs.oracle.com/javase/specs/jls/se7/html/…
0 votes
Possible duplicate de Fonction varargs Java 1.7 signalée comme avertissement non vérifié
0 votes
Je vois cela dans mon éditeur :
Pollution possible du tas provenant d'un type vararg paramétré
0 votes
Si vous êtes confus (comme moi) quant à quand vous pouvez utiliser en toute sécurité l'annotation, ici se trouve une explication utile pour vérifier si votre méthode est sûre à annoter avec
@SafeVarargs