RSS DEV コミュニティ

ラムダ式の型は何ですか?

ラムダ式は関数型である必要があり、Objectのような非関数型には代入できません。ラムダ式をObject型の変数に代入しようとすると、コンパイルエラーが発生します。ただし、Runnableのような関数型インターフェース型の変数にラムダ式を代入することは可能です。ラムダ式は、メソッドへの引数として直接渡すこともでき、コンパイラはコンテキストに基づいて型を推論します。コンテキストに基づいてラムダ式の期待される型は、Target Typeと呼ばれます。Target Typeにより、コンパイラはラムダ式の型を推論し、同じラムダ式が異なる関数型インターフェースを表すことを認識できます。メソッド参照も推論にTarget Typeを使用し、同じメソッド参照が異なるインターフェースに適応できます。ラムダ式とメソッド参照の主な違いは、メソッド参照の方が型がより明示的であるため、推論がより強力になることです。さらに、互換性のある関数型インターフェース間の変換も許可されています。Javaでラムダ式とメソッド参照を扱うには、Target Typeを理解することが不可欠です。
favicon
dev.to
Qual é o tipo de uma expressão Lambda?
Create attached notes ...