Heim  >  Artikel  >  Java  >  Java-Fehler: Java11 Local-Variable Syntax for Lambda Parameters (var-Schlüsselwort) Fehler, wie man damit umgeht und ihn vermeidet

Java-Fehler: Java11 Local-Variable Syntax for Lambda Parameters (var-Schlüsselwort) Fehler, wie man damit umgeht und ihn vermeidet

PHPz
PHPzOriginal
2023-06-24 18:33:23958Durchsuche

Java hat in der neuesten Version Java11 ein neues Schlüsselwort var eingeführt, das Typnamen ersetzen kann, die explizit deklariert werden müssen, wodurch der Code vereinfacht und die Lesbarkeit verbessert wird. Bei der Verwendung von Lambda-Ausdrücken löst das Schlüsselwort var jedoch manchmal einen Fehler „Lokale Variablensyntax für Lambda-Parameter“ aus. In diesem Artikel wird die Ursache dieses Fehlers vorgestellt und wie man damit umgeht und ihn vermeidet.

Warum tritt dieser Fehler auf?

Vor Java 11 mussten die formalen Parameter eines Lambda-Ausdrucks ihren Typ explizit deklarieren. Ein Lambda-Ausdruck, der eine Zeichenfolge und eine Ganzzahl empfängt, könnte beispielsweise so aussehen:

BiFunction<String, Integer, String> func = (String str, Integer num) -> str.substring(num);

Und in Java 11 können Sie das Schlüsselwort var anstelle des Typnamens verwenden, wodurch der obige Code prägnanter wird:

BiFunction<String, Integer, String> func = (var str, var num) -> str.substring(num);

Wenn in Lambda das Schlüsselwort var in einem Ausdruck verwendet wird, kann der Compiler seinen Typ nicht ableiten, und es tritt ein Fehler bei der Syntax lokaler Variablen für Lambda-Parameter auf.

Dieser Fehler tritt beispielsweise im folgenden Code auf:

BiFunction<String, Integer, String> func = (var str, num) -> str.substring(num);

Unter diesen hat der zweite Parameter num keine explizite Typdeklaration mit dem Schlüsselwort var.

Wie gehe ich mit diesem Fehler um und vermeide ihn?

Der Umgang mit diesem Fehler ist einfach: Geben Sie einfach explizit den Typ für jeden formalen Parameter im Lambda-Ausdruck an:

BiFunction<String, Integer, String> func = (var str, Integer num) -> str.substring(num);

Auf diese Weise kann der Compiler jedes Formular korrekt ableiten. Die Parameter werden typisiert, wodurch die lokale Variable eliminiert wird Syntax für Lambda-Parameterfehler.

Aber ein besserer Ansatz besteht darin, die Verwendung des Schlüsselworts var in Lambda-Ausdrücken so weit wie möglich zu reduzieren. In Java11 wird das Schlüsselwort var hauptsächlich zur Vereinfachung des Codes und zur Verbesserung der Lesbarkeit verwendet. Bei unsachgemäßer Verwendung kann es jedoch zu Problemen kommen. Daher ist es beim Schreiben von Lambda-Ausdrücken am besten, den Typ für jeden formalen Parameter explizit anzugeben, um diesen Fehler zu vermeiden.

Zusammenfassung

In Java11 kann das Schlüsselwort var den Code vereinfachen und die Lesbarkeit verbessern. Es kann dem Code auch eine prägnantere Form verleihen, wenn es in Lambda-Ausdrücken verwendet wird. Gleichzeitig bringt das Schlüsselwort var jedoch auch einige detaillierte Probleme mit sich, z. B. Fehler bei der Syntax lokaler Variablen für Lambda-Parameter. Um diesen Fehler zu vermeiden, empfehlen wir, die Verwendung des Schlüsselworts var in Lambda-Ausdrücken zu minimieren und bei Bedarf den Typ für jeden formalen Parameter explizit anzugeben. Dies kann die Lesbarkeit und Korrektheit des Codes sicherstellen und die Entwicklungseffizienz verbessern.

Das obige ist der detaillierte Inhalt vonJava-Fehler: Java11 Local-Variable Syntax for Lambda Parameters (var-Schlüsselwort) Fehler, wie man damit umgeht und ihn vermeidet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn