假设我有这样一个简单的数据类:
data class Transaction(
val time: Long,
val sender: String,
val data: ByteArray
)
在kotlin中,我定义了以下方法:
fun handleTransaction(transactionGetter: ()->Transaction) {
// do something
}
如何从java调用这个方法?
我试着做一个java lambda,但没能弄明白。它告诉我参数应该是 Function0<Transaction>
但我不太确定该如何定义。
好吧,我想我能做到:
handleTransaction(new Function0<Transaction>() {
@Override
public Transaction invoke() {
// handle getting transaction
}
});
这真的是正确的方法吗?很难看。
1条答案
按热度按时间2admgd591#
如果您的目标至少是jdk8,那么您可以这样做(如果
handleTransaction
在文件中定义Transaction.kt
):如果你的目标是jdk8以下的任何东西,那么除了你已经找到的以外没有别的方法了。