ラムダのクラスはであることがわかりますが、isSynthetic() && !isLocalOrAnonymousClass()
プロキシクラスでも同じことが当てはまると思います。
もちろん、それを確認してクラス名にgetDeclaredMethods().length == 1
適用regexp
することもできます。
ただし、特定のオブジェクトがラムダかどうかを確認するためのよりエレガントで堅牢なオプションがあるかどうかを知りたいです。
設計上、これを行う公式な方法はありません。ラムダは言語の一部です。機能的なインターフェースを介して型システムに統合されます。Runnable
ラムダ、名前付きクラス、または内部クラスとして始まったを区別する必要はありません。これらはすべてRunnableです。クラスファイルを分解して「ラムダを扱う」必要があると思われる場合は、ほぼ間違いなく何かが間違っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加