Heim >Java >javaLernprogramm >Inferenz lokaler Variablentypen in Java 10: So verwenden Sie das Schlüsselwort var im Lambda-Ausdruck
Inferenz lokaler Variablentypen in Java 10: So verwenden Sie das Schlüsselwort var in Lambda-Ausdrücken
Zitat:
Java 10 hat eine neue Funktion der Inferenz lokaler Variablentypen eingeführt, die es uns ermöglicht, das Schlüsselwort var zu verwenden, während wir lokale Variablen deklarieren, um auf deren Typ zu schließen. Während diese Funktion in den meisten Fällen möglicherweise nicht erforderlich ist, kann sie in einigen Fällen die Lesbarkeit und Einfachheit des Codes verbessern. Dieser Artikel konzentriert sich auf die Verwendung des Schlüsselworts var in Lambda-Ausdrücken, um die Inferenz lokaler Variablentypen zu implementieren.
Was ist die Inferenz lokaler Variablentypen?
In früheren Java-Versionen mussten wir den Typ einer lokalen Variablen beim Deklarieren explizit angeben. Zum Beispiel:
String name = "John"; int age = 25;
Ab Java 10 können wir jedoch das Schlüsselwort var verwenden, um den Compiler automatisch auf den Typ einer Variablen basierend auf dem Ausdruck auf der rechten Seite schließen zu lassen, ohne ihn explizit angeben zu müssen. Zum Beispiel:
var name = "John"; var age = 25;
In diesem Beispiel schließt der Compiler basierend auf dem Ausdruck auf der rechten Seite, dass der Typ des Namens String und der Typ des Alters int ist.
Vorteile der Verwendung des Schlüsselworts var in Lambda-Ausdrücken:
Bei der Verwendung von Lambda-Ausdrücken erstellen wir normalerweise eine Instanz einer funktionalen Schnittstelle, um sie an andere Methoden zu übergeben. Die Verwendung des Schlüsselworts var erspart uns die Mühe, beim Erstellen von Lambda-Ausdrucksinstanzen Parametertypen anzugeben. Auf diese Weise können wir uns mehr auf die Logik des Lambda-Ausdrucks konzentrieren, ohne der Deklaration des Parametertyps zu viel Aufmerksamkeit zu schenken.
Beispielcode:
Angenommen, wir haben eine Klasse namens Person, die zwei Attribute enthält: Name und Alter:
class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }
Jetzt wollen wir basierend auf dem Namensattribut von Person-Objekten sortieren. Vor Java 10 mussten wir den generischen Typ von Comparator manuell angeben:
List<Person> persons = // 初始化Person对象列表 Collections.sort(persons, new Comparator<Person>() { @Override public int compare(Person p1, Person p2) { return p1.getName().compareTo(p2.getName()); } });
In diesem Beispiel haben wir eine anonyme innere Klasse erstellt, um die Comparator-Schnittstelle zu implementieren, und die darin enthaltene Vergleichsmethode überschrieben. Allerdings macht das Schlüsselwort var in Java 10 den Code sauberer:
List<Person> persons = // 初始化Person对象列表 Collections.sort(persons, (var p1, var p2) -> { return p1.getName().compareTo(p2.getName()); });
In diesem Beispiel haben wir das Schlüsselwort var verwendet, um die Typen von p1 und p2 abzuleiten, ohne deren Typ explizit als Person deklarieren zu müssen.
Fazit:
Die lokale Variablentypinferenz von Java 10 ist eine leistungsstarke Funktion, die es uns ermöglicht, saubereren und besser lesbaren Code zu schreiben. Durch die Verwendung des Schlüsselworts var in einem Lambda-Ausdruck können wir uns auf die Implementierung der Logik konzentrieren, ohne der Typdeklaration der Parameter zu viel Aufmerksamkeit schenken zu müssen. Obwohl diese Funktion in manchen Situationen sehr nützlich sein kann, müssen wir sie natürlich dennoch mit Vorsicht verwenden, um die Wartbarkeit und Lesbarkeit des Codes sicherzustellen.
Referenzmaterialien:
Das obige ist der detaillierte Inhalt vonInferenz lokaler Variablentypen in Java 10: So verwenden Sie das Schlüsselwort var im Lambda-Ausdruck. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!