Как передать работу функционального интерфейса в качестве параметра в Kotlin?

Учитывая этот функциональный интерфейс в Java:

public interface Condition<T> {
   boolean check(T target);
}

Операция, созданная этим интерфейсом, может быть передана в качестве параметра конструктору класса:

new ValidationRule<>(description,problem,target-> target.length() >= 2)

Третий аргумент - это интерфейс условий, в котором выполняемая операция явно указывается как:

target -> target.length() >= 2

У меня проблемы с копированием этого шаблона в Котлине. Как это можно сделать в kotlin? Есть ли конкретный способ сделать это?

PS Я новичок в Kotlin.

1 ответ

Должно быть так же просто, как

typealias Condition<T> = (T) -> Boolean

class ValidationRule<T>(val description: T, val problem: T, val condition: Condition<T>) 

val validationRule = ValidationRule(description, problem, { target -> target.length() >= 2 }) 
Другие вопросы по тегам