Erstens, wie in früheren Fragen über Kotlin-Read-Only-Sammlungen und ihre Unveränderlichkeit behandelt, sind sie wirklich nur Live-Ansichten von wahrscheinlich veränderlichen Sammlungen gelesen.
Kotlin kann den Typ sicher auf Mutabilität prüfen, da es Marker auf den Schnittstellen gibt, die Kotlin wissen lassen, zum Beispiel:
%Vor% Dieser is
Check ruft intern TypeIntrinsics.isMutableMap
auf und ist ein gültiger Weg, um zu wissen, ob es umsetzbar ist. Es besteht keine Gefahr in der Besetzung, wenn Sie diese Prüfung zuerst durchführen. Sie werden bemerken, dass der Compiler vollkommen glücklich und ohne Warnungen ist. Dies kann gefährlich sein, wenn Sie nicht beabsichtigen, die gleiche Map als schreibgeschützt zu bearbeiten, sondern dass Sie für act sprechen können.
Wenn Sie nicht die Möglichkeit haben möchten, Ihre ursprüngliche Karte zu ändern, dann machen Sie natürlich immer eine Kopie, indem Sie einfach den Konstruktor von HashMap mit einer anderen Karte aufrufen, HashMap(readOnlyMap)
. Oder machen Sie eine Erweiterungsfunktion:
und rufe es an:
%Vor%Und jetzt haben Sie Ihren einfachen Weg.
Siehe auch:
Tags und Links kotlin