Es ist ziemlich sicher, dass @SafeVarargs
Anmerkung zu der Methode, wenn Sie die Art des Aufrufs kontrollieren können (z. B. eine private Methode einer Klasse). Sie müssen sicherstellen, dass nur die Instanzen des deklarierten generischen Typs an die Methode übergeben werden.
Wenn die Methode extern als Bibliothek exponiert ist, wird es schwierig, solche Fehler zu erkennen. In diesem Fall ist es am besten, diese Anmerkung zu vermeiden und die Lösung mit einem Auflistungstyp umzuschreiben (z.B. Collection<Type1<Type2>>
) anstelle von varargs ( Type1<Type2>...
).
Was die Namensgebung anbelangt, so ist der Begriff Haldenverschmutzung Phänomen ist meiner Meinung nach ziemlich irreführend. In der Dokumentation die eigentliche JVM Haufen ist kein Ereignis, das erwähnt wird. Es gibt eine Frage bei Software Engineering, die einige interessante Gedanken zur Benennung dieses Phänomens enthält.