Heim >Java >javaLernprogramm >Warum schlägt die Java 8-Komparatortypinferenz beim Verketten von „thenComparing'-Methoden fehl?
Java 8 Comparator Type Inference Confusion
Bei Verwendung der statischen Methoden von Comparator können Typparameter in Lambda-Ausdrücken weggelassen werden. Das Verketten von thenComparing-Methoden kann jedoch zu Kompilierungsfehlern führen.
Verstehen des Problems
Beim Verketten von thenComparing-Methoden verliert der Compiler Typinformationen über den ersten Lambda-Parameter (p1). . Dies liegt daran, dass Lambda-Ausdrücke in Methodenempfängerpositionen keine kontextsensitiven Typen ableiten.
Zum Beispiel im folgenden Aufruf:
Collections.sort(playlist1,
Das obige ist der detaillierte Inhalt vonWarum schlägt die Java 8-Komparatortypinferenz beim Verketten von „thenComparing'-Methoden fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!