如何为Kotlin中lambda参数的返回值添加注解
正确实现方案
你需要把@FloatRange注解直接标注在lambda表达式的返回值类型前,正确代码如下:
import androidx.annotation.FloatRange private fun MyFun( progress: () -> @FloatRange(from = 0.0, to = 1.0) Float, ) { // 业务逻辑 }
补充说明
- 绝大多数语法报错都是因为注解位置错误,不要将注解放到参数名前或者函数类型的括号前,必须严格放在
->符号和返回值类型Float之间。 - 如果你使用的Kotlin版本低于1.4,也可以通过typealias预定义带注解的函数类型再调用:
import androidx.annotation.FloatRange typealias ProgressSupplier = () -> @FloatRange(from = 0.0, to = 1.0) Float private fun MyFun( progress: ProgressSupplier, ) { // 业务逻辑 }
内容的提问来源于stack exchange,提问作者RareScrap
相关产品推荐
相关产品推荐

