java - 如何在 Kotlin 中将函数式接口(interface)操作作为参数传递?

标签 java lambda kotlin functional-interface

考虑到 Java 中的函数式接口(interface):

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

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

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

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

target -> target.length() >= 2

我在 Kotlin 中复制此模式时遇到问题。在 kotlin 中如何做到这一点?有没有 kotlin 特定的方法来做到这一点。

PS 我是 Kotlin 新手。

最佳答案

应该很简单

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

关于java - 如何在 Kotlin 中将函数式接口(interface)操作作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51915953/

相关文章:

java - 不确定单例

java - 从 SQL 查询方法返回泛型类型

javascript - 无法从 nashorn java 调用 javascript 的异步函数

java - 如何使用 PDFBox 在 PDF 中查找空白页?

c# - Lambda 表达式和存储过程

Java Lambda 捕获还是重新执行?

java - 将 Java 8 的 Optional 与 Stream::flatMap 一起使用

Android 工作管理器 - ExistingPeriodicWorkPolicy.KEEP 和 .Replace 之间的区别

java - 为什么执行一组测试会得到与单独执行不同的结果?

android - RecyclerView SnapHelper 无法显示第一个/最后一个项目