在Kotlin中,如果你有一个接口,它只有一个需要实现的函数类型,你可以使用lambda表达式来简化代码。这种接口通常被称为函数式接口。在Kotlin中,你可以使用@FunctionalInterface注解来标注一个函数式接口。
java
@FunctionalInterface
public interface MyInterface {
void doSomething(String input)
}
在Kotlin中,你不需要显式地声明这是一个函数式接口,因为Kotlin自动将含有单一抽象方法(SAM)类型的Java接口视为函数式接口。
现在,如果你有一个使用这个接口的函数,你可以传递一个lambda表达式来替代传统的实现:
kotlin
fun handleString (intput: String,myInterface: MyInterface){
myInterface.doSomething(input)
}
//使用lambda表达式简化
handleString("Hello"){ string ->
println(string)
}
在上面的例子中,handleString函数接受一个字符串和一个MyInterface类型的实例,然后调用这个实例的doSomething方法。我们使用了一个lambda表达式作为参数,这个lambda表达式接受一个String类型的参数并打印它。