参考 vararg 函数参数 Kotlin



有没有办法引用

权限.权限名称

在此代码中:

fun Activity.isPermissionGranted(vararg permission : AppPermission) = (PermissionChecker.checkSelfPermission(this, permission.permissionName) == PackageManager.PERMISSION_GRANTED)

就像我收到"未解析的引用:权限名称"错误一样。

AppPermission类签名如下所示:

sealed class AppPermission(val permissionName: String,
val requestCode: Int,
val deniedMessageId: Int,
val explanationMessageId: Int) {...}

老实说,我什至不确定在这里使用 varargs 是否是一个好主意,所以如果它完全是疯狂的,请纠正我。

基本上,我正在尝试为 Android> 5.0 实现授予权限逻辑,但我不确定我们最终需要多少权限,所以这就是我想在这里使用 varargs 的原因。

vararg基本上只是用于创建数组的语法糖。因此,您需要将参数permission视为Array<AppPermission>,这意味着您可能希望这样做:

fun Activity.isPermissionGranted(vararg permissions : AppPermission) = permissions.all { permission -> (PermissionChecker.checkSelfPermission(this, permission.permissionName) == PackageManager.PERMISSION_GRANTED) }

在这里,all是标准库中的一个函数,它为数组中的每个值计算一个Boolean,并在所有这些Booleantrue时返回true

相关内容

  • 没有找到相关文章

最新更新