首页 > 解决方案 > 如何在 Kotlin 中将功能接口操作作为参数传递?

问题描述

鉴于 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 的新手。

标签: javalambdakotlinfunctional-interface

解决方案


应该很简单

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

推荐阅读