Как передать работу функционального интерфейса в качестве параметра в 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 })