Kotlin でシリアライズ可能なラムダを使用できますか? Kotlin の Jinq ライブラリを使用しようとしていますが、シリアライズ可能なラムダが必要です。それを可能にする構文はありますか?
アップデート:
私のコード:
var temp=anyDao.streamAll(Task::class.java)
.where<Exception,Task> { t->t.taskStatus== TaskStatus.accepted }
.collect(Collectors.toList<Task>());
このエラーが発生しています:
Caused by: java.lang.IllegalArgumentException:
Could not extract code from lambda.
This error sometimes occurs because your lambda references objects that aren't Serializable.
ラムダで参照されるすべてのオブジェクトはシリアライズ可能です (コードは Java でエラーになりません)。
更新 2
デバッグ後、kotlin ラムダは、Jinq が情報を取得するために必要な java.lang.invoke.SerializedLambda に変換されていないようです。問題は、それをどのように SerializedLambda に変換するかです。