Bei der Verbesserung des vorhandenen Legacy-Codes habe ich versucht, die Warnungen von IntelliJ zu reduzieren.
Zu dieser Zeit gab es einen Prozess zum "Festlegen des Werts, wenn der Schlüsselwert für Map null ist", aber ich habe aus IntelliJs Punkt darüber gelernt, also habe ich diesen Artikel dieses Mal geschrieben.
Angenommen, es gibt eine Karte mit dem folgenden Präfekturnamen und dem Standort des Präfekturbüros.
Map<String, String> prefectures = new HashMap<>();
prefectures.put("Präfektur Ibaraki", "Mito");
prefectures.put("Präfektur Tochigi", "Utsunomiya");
prefectures.put("Präfektur Gunma", null);
Derzeit ist der Wert der Schlüsselpräfektur Gunma null, und wir möchten den Wert hier festlegen. Zu diesem Zeitpunkt wurde in der vorhandenen Implementierung der Wert mit der folgenden Methode festgelegt.
if (prefectures.get("Präfektur Gunma") == null) {
prefectures.put("Präfektur Gunma", "Maebashi");
}
IntelliJ schlug vor, dass Sie es mit der putIfAbsent-Methode einfacher schreiben könnten.
Die putIfAbsent-Methode ist eine Methode, die den Wert festlegt, wenn der Schlüssel wie oben beschrieben null ist. Wenn Sie diese Methode verwenden, verschwindet die if-Anweisung wie im vorherigen Beispiel und
prefectures.putIfAbsent("Präfektur Gunma", "Maebashi");
Sie können klar in eine Zeile schreiben.
Ich wusste nicht, dass es diese Methode gibt, also ist es einfach, aber diesmal habe ich diesen Artikel geschrieben.
Wenn Sie den Vorgang "Festlegen des Werts, wenn der Schlüsselwert für Map null ist" ausführen, können Sie ihn mithilfe der putIfAbsent-Methode ohne Verwendung der if-Anweisung klar schreiben.
Ich dachte noch einmal, dass IntelliJ, der diesmal sogar einen solchen Vorschlag machte, erstaunlich war, aber ich fragte mich auch, wie ich eine so bequeme Methode kennen sollte.
Ich würde mich freuen, wenn Sie mir sagen könnten, ob es einen besseren Weg gibt als "Schauen Sie sich JavaDoc an und werfen Sie einen Blick darauf" und "Lesen Sie die JDK-Versionshinweise".
Ich hoffe dieser Artikel hilft jemandem. Bis zum Ende Danke fürs Lesen.
JavaDoc für putIfAbsent-Methode
Recommended Posts