Permisosdispatcher y múltiples @ NeedsPermission con kotlin

Para un permiso puedo usar permissions dispatcher en java y kotlin, pero cuando se trata de permissions múltiples como este:

@NeedsPermission({Manifest.permission.BLUETOOTH_ADMIN,Manifest.permission.BLUETOOTH}) 

Me sale un problema en kotlin – no acepta más de un parámetro allí – funciona bien con Java

En Java, {} representa la creación de una matriz y, en este context, en Kotlin {} está creando accidentalmente una expresión lambda y no se puede determinar su intención porque el código dentro de la lambda no es válido.

Entonces, usted dice @NeedsPermission(someFunctionReferenceThatIsInvalid) lugar de pasar una serie de permissions como @NeedsPermission(array)

En la anotación, la matriz se trata como una vararg por lo que puede enumerar los elementos:

 @NeedsPermission(Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH) 

Si se tratara como una matriz, usaría la function arrayOf :

 @NeedsPermission(arrayOf(Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH)) 

Los ejemplos que crean una matriz y luego usan el operador * spread básicamente están haciendo y luego deshaciendo la matriz y no es necesario.

 @NeedsPermission(arrayOf(Manifest.permission.BLUETOOTH_ADMIN,Manifest.permission.BLUETOOTH)) 

En java @NeedsPermission({...}) las llaves {...} son solo una abreviatura para crear una matriz. En kotlin debes decir explícitamente que es una matriz, porque {} está reservado para expresiones lambda.

  • Genéricos de Kotlin e inferencias de types incorrectos
  • Kotlin obtiene valor de JSON
  • Por qué la class Kotlin ya no necesita abrirse en Spring Boot
  • La aplicación no implementa dagger.android.HasDispatchingActivityInjector
  • ¿Cuáles son los beneficios de escribir código JavaScript usando Kotlin?
  • Tipo genérico de Kotlin, Falló la inferencia de tipo
  • ¿Cómo get un KClin KClass de una cadena de nombre de class de package?
  • No se puede conectar a Remote Mongo DB mediante Springboot
  • Matriz bidimensional reajustable en Kotlin
  • ¿Puedo importar una biblioteca escribir en Kotlin a mi proyecto de Android (utiliza Java)?
  • No se puede ejecutar la aplicación JavaFX - Kotlin