У меня есть пример Java, где метод реализован как
@Override
public Function<ISeq<Item>, Double> fitness() {
return items -> {
final Item sum = items.stream().collect(Item.toSum());
return sum._size <= _knapsackSize ? sum._value : 0;
};
}
Автоматический перевод IntelliJ на Kotlin:
override fun fitness(): Function<ISeq<Item>, Double> {
return { items:ISeq<Item> ->
val sum = items.stream().collect(Item.toSum())
if (sum.size <= _knapsackSize) sum.value else 0.0
}
}
(Я сделал тип элементов явным и изменилвернуться к 0.0)
Тем не менее я вижу, что есть проблемы совместимости с Java-функциями и родными лямбдами Kotlin, но я не настолько знаком с ними.Ошибка:
![enter image description here](https://i.stack.imgur.com/OJp7X.png)
Вопрос: возможно ли в Kotlin переопределить метод fitness () внешней библиотеки Java в этом примере, и если да, то как?