我可以在 Kotlin 中有可序列化的 lambda 吗?我正在尝试使用 Kotlin 的 Jinq 库,但它需要可序列化的 lambda。是否有任何语法使它成为可能?
更新:
我的代码:
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.
lambda 中引用的所有对象都是可序列化的(代码在 java 中不会产生错误)。
更新 2
调试后,似乎 kotlin lambda 没有翻译成 Jinq 从中获取信息所需的 java.lang.invoke.SerializedLambda。所以问题是如何将其转换为 SerializedLambda。