Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Kotlin中将函数接口操作作为参数传递?_Java_Lambda_Kotlin_Functional Interface - Fatal编程技术网

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

Java 如何在Kotlin中将函数接口操作作为参数传递?,java,lambda,kotlin,functional-interface,Java,Lambda,Kotlin,Functional Interface,给定Java中的此功能接口: public interface Condition<T> { boolean check(T target); } 我在Kotlin复制这个图案时遇到困难。如何在科特林做到这一点?是否有kotlin的具体方法来实现这一点 PS我是科特林的新手。应该简单到 typealias Condition<T> = (T) -> Boolean class ValidationRule<T>(val description:

给定Java中的此功能接口:

public interface Condition<T> {
   boolean check(T target);
}
我在Kotlin复制这个图案时遇到困难。如何在科特林做到这一点?是否有kotlin的具体方法来实现这一点

PS我是科特林的新手。

应该简单到

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 }) 
typealias条件=(T)->布尔值
类验证规则(val描述:T,val问题:T,val条件:条件)
val validationRule=validationRule(描述,问题,{target->target.length()>=2})

您是否阅读了文档中的“lambdas”和“高阶函数”章节?@TimCastelijns是的,但我仍然无法理解此模式,文档中指定的模式可以以类似方式使用!也许我只是没能理解这里有很多例子展示了语法:。你至少试过什么吗?什么?如果接口已经存在于Java中,那么您不需要typealias。谢谢您的回答!问题不是从一种语法转换到另一种语法。问题是参数不接受lambda表达式作为参数。您可能需要指定
,问题,条件{target->
target -> target.length() >= 2
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 })