Скажем, у меня есть некоторый простой класс данных, подобный этому:
data class Transaction(
val time: Long,
val sender: String,
val data: ByteArray
)
И в Kotlin у меня определен следующий метод:
fun handleTransaction(transactionGetter: ()->Transaction) {
// do something
}
Как мне go о вызове этого метода из Java?
Я пытался сделать java лямбду, но не могу понять это. Это говорит мне, что параметр должен быть Function0<Transaction>
, но я не слишком уверен, как определить это.
Хорошо, я понял, что могу сделать это:
handleTransaction(new Function0<Transaction>() {
@Override
public Transaction invoke() {
// handle getting transaction
}
});
Это действительно правильный способ сделать это? Это довольно некрасиво.