如何在Kotlin中将功能接口操作作为参数传递?

时间:2018-08-19 08:40:43

标签: java lambda kotlin functional-interface

使用Java提供此功能接口:

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

该接口产生的操作可以作为参数传递给类的构造函数:

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

第三个参数是Condition接口,其中要执行的操作明确指定为:

target -> target.length() >= 2

我在Kotlin中复制此模式时遇到麻烦。如何在Kotlin中完成?有没有kotlin特定的方法可以做到这一点。

PS我是Kotlin的新手。

1 个答案:

答案 0 :(得分:0)

应该简单

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 })