Heim >Java >javaLernprogramm >Warum schlägt die Java 8-Komparatortypinferenz beim Verketten von „thenComparing'-Methoden fehl?

Warum schlägt die Java 8-Komparatortypinferenz beim Verketten von „thenComparing'-Methoden fehl?

Susan Sarandon
Susan SarandonOriginal
2024-11-27 11:19:10303Durchsuche

Why Does Java 8 Comparator Type Inference Fail When Chaining `thenComparing` Methods?

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!

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