Das Offenlegen Ihrer Sammlungen ist Ihre Lösung
TL;DR: Verwenden Sie unveränderliche Sammlungen, um unbeabsichtigte Nebenwirkungen zu verhindern.
Aliasing tritt auf, wenn zwei oder mehr Variablen auf dasselbe Objekt verweisen.
Dies kann zu unerwarteten Nebenwirkungen führen, insbesondere wenn eine Variable das gemeinsam genutzte Objekt ändert.
Sie können unveränderliche Sammlungen nach der Erstellung nicht mehr ändern, um versehentliches Aliasing zu verhindern.
Vorzeitige Optimierer werden argumentieren, dass das Kopieren von Sammlungen ein teurer Vorgang ist, den Sie vermeiden sollten.
Dies ist ein Sonderfall von Object Aliasing
public class MutableExample { public static void main(String[] args) { List<Integer> numbers = List.of(1, 2, 3); List<Integer> otherNumbers = numbers; // Aliasing otherNumbers.add(4); System.out.println(numbers); // Output: [1, 2, 3, 4] } }
public class ImmutableExample { public static void main(String[] args) { List<Integer> numbers = List.of(1, 2, 3); List<Integer> otherNumbers = List.copyOf(numbers); // Creating a copy otherNumbers.add(4); System.out.println(numbers); // Output: [1, 2, 3] } }
[X] Halbautomatisch
Mehrere statische Analysetools können Sie vor Aliasing-Missbrauch warnen.
[x] Mittelstufe
KI-Codegeneratoren erstellen möglicherweise nicht immer standardmäßig unveränderliche Objekte, insbesondere wenn sie mit veränderlichen Sammlungen arbeiten.
Sie können sie auffordern, unveränderliche Sammlungen zu priorisieren und vorhandene einzuschließen, um Aliasing zu vermeiden.
KI-Tools können Code auf potenzielle Aliasing-Probleme analysieren und stattdessen die Verwendung unveränderlicher Sammlungen vorschlagen.
Sie können unbeabsichtigte Nebenwirkungen vermeiden, indem Sie unveränderliche Sammlungen verwenden.
Dadurch wird Ihr Code vorhersehbarer und leichter nachvollziehbar.
Code Smells sind meine Meinung.
Foto von Martino Pietropoli auf Unsplash
Wenn ein Objekt unveränderlich ist, kann es sich nur in einem Zustand befinden, und Sie haben einen großen Gewinn.
Joshua Bloch
Dieser Artikel ist Teil der CodeSmell-Reihe.
Das obige ist der detaillierte Inhalt vonCode Smell – Aliasing der Sammlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!