在Kotlin中需要带有"allOf"的Permission注释

rmt*_*eis 3 android kotlin

在Kotlin中,我想添加一个方法注释,它等同RequiresPermission于Java中的这个注释,表明需要多个权限:

@RequiresPermission(allOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
public Location getLocation() {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如何在Kotlin中编写此注释?

zsm*_*b13 5

您可以将一个项目数组作为注释参数传入arrayOf:

@RequiresPermission(allOf = arrayOf(ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION))
fun getLocation(): Location {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

实际上,您只需将Java代码粘贴到Kotlin文件Android Studio中即可实现此解决方案.

更新:从Kotlin 1.2开始,您也可以使用数组文字语法:

@RequiresPermission(allOf = [ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION])
fun getLocation(): Location {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

  • Android studio建议使用`@RequiresPermission(allOf = [ACCESS_COARSE_LOCATION,ACCESS_FINE_LOCATION])`,但会显示编译错误.你现在发生了什么事吗? (2认同)