Seit dem neuen Update (2018.2) unterstreicht IntelliJ IDEA Variablen, wenn sie „unnötig“ neu zugewiesen werden – dazu gehört allerdings jede Verwendung von „+=“.
Ist das ein Fehler in der IDE oder verstehe ich das falsch?
Bitte sehen Sie sich diese grundlegende Methode als Beispiel an. (Es fügt nur eine Liste von Zahlen hinzu.)
IntelliJ IDEA unterstreicht Variablen, wenn += in JAVA verwendet wird
Fandango
CrazyCoder
Es ist ein neue Funktion von IntelliJ IDEA 2018.2:
Unterstreichen von neu zugewiesenen lokalen Variablen und neu zugewiesenen Parametern
IntelliJ IDEA unterstreicht jetzt standardmäßig neu zugewiesene lokale Variablen und neu zugewiesene Parameter. Die Attribute für alle Sprachen, die diese Funktion unterstützen, zu denen derzeit Java und Groovy gehören, können geändert werden Präferenzen/Einstellungen | Herausgeber | Farbschema | Sprachvorgaben | Identifikatoren | Neu zugewiesen.
Warum kann es nützlich sein?
Wenn die Variable/der Parameter unterstrichen ist, wissen Sie, dass Sie sie nicht direkt in der Lambda/Anonymous-Klasse verwenden können.
Wenn beim Lesen eines sehr langen Methodencodes der Parameter nicht unterstrichen ist, wissen Sie sicher, dass sein Wert nirgendwo in dieser Methode neu zugewiesen wird und dass er genau denselben Wert enthält, der dieser Methode zu irgendeinem Zeitpunkt übergeben wurde.
Einige Code-Richtlinien sind gegen neu zugewiesene Variablen, und Sie sollten sie nach Möglichkeit vermeiden, um den Code sauber zu halten und das Lesen/Debuggen zu erleichtern.
Heutzutage ziehen es viele Entwickler vor, veränderliche Zustände zu vermeiden und Variablen nur in seltenen Fällen neu zuzuweisen, wenn es wirklich notwendig ist. Wir wollen die Unveränderlichkeit nicht manuell erzwingen, wir nehmen an, dass alles standardmäßig unveränderlich ist, und möchten zusätzliche Aufmerksamkeit auf die Fälle lenken, in denen etwas dies nicht ist. Wenn du benutzt final
Um nicht veränderliche Variablen zu markieren, müssen Sie für normale Fälle mehr Code und für Ausnahmefälle weniger Code schreiben. (Übrigens erfordert das Deklarieren unveränderlicher Variablen in modernen Sprachen kein Schreiben von zusätzlichem Code, aber leider nicht in Java).
Brian Goetz, Java Language Architect, mag auch die Art und Weise, wie IntelliJ IDEA neu zugewiesene Variablen hervorhebt (siehe sein Tweet).
-
Es ist im Grunde was
final
kann verwendet werden (nur nicht jeder verwendet es)– ACV
29. Januar 2019 um 15:32 Uhr
-
Eine der schlechtesten Intellij-Verbesserungen, die ich seit einiger Zeit gesehen habe. Jemand hat ein Usability-Problem mit ihnen angesprochen. Fühlen Sie sich frei, es hochzustimmen: youtrack.jetbrains.com/issue/IDEA-207835
– ACV
5. August 2019 um 10:18 Uhr
Wenn Sie wissen, was das ist Nebeneffekt beim Programmieren dann wird es dir leicht fallen. Um Ihre Variable vor dem zu schützen Nebenwirkungzeigt die IDE den Unterstrich als Warnung an.
Ich bin mir nicht sicher, aber wenn Sie jdk 10 verwenden, können diese Untergebenen Ihnen vorschlagen, dass Sie es verwenden können
var
anstattint
.– Zlakad
5. August 2018 um 18:32 Uhr
Danke für die Antwort. Ich habe tatsächlich auf jdk 8/1.8 heruntergestuft, weil niemand mein Glas öffnen konnte 🙂
– Fandango
5. August 2018 um 18:34 Uhr
Nun, es ist eine unnötige Neuzuweisung in dem Sinne, dass Sie einfach einen Stream verwenden könnten, um es zu berechnen … Aber ich sehe nicht, dass Sie dort etwas Ungewöhnliches tun.
– Andy Turner
5. August 2018 um 18:46 Uhr