java - 如何在 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 的新手。
解决方案
应该很简单
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 })
推荐阅读
- azure - 我们可以访问 Azure 恢复服务 Vault/Azure 备份服务的存储位置吗
- google-cloud-functions - 没有 Actions API 的 Google Assistant / Dialogflow 推送通知
- vue.js - Vuex - 运行时收到错误消息,但一切都按预期工作?
- c++ - 我什么时候应该通过引用传递向量参数而不是按值传递向量参数?
- css - 创建带角度的线性渐变
- css - 侧边菜单对象上的 translate() 仍然占用空间
- c++ - 我得到“_free_dbg(块,_UNKNOWN_BLOCK);” 我正在尝试处理堆栈和队列
- php - 使用数组作为动态对象实例的查找
- python - 如何将来自api的嵌套json解压缩到pandas数据框中?
- javascript - YouTube iframe Player API:控制已经在 HTML 中的 MULTIPLE iframe 播放器