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.

  • La variable de anulación crea un NPE cuando se usa una variable en la initialization en la superclass
  • Función de extensión Kotlin: reference no resuelta
  • Error: com.app.android.dagger.component.AppComponent (no codificado) no puede hacer reference a enlaces delimitados:
  • Almacenar datos en BEAN (Spring Boot REST)
  • Android Kotlin `.replaceRange` no reemplaza el text en SpannableString
  • ¿Qué significa .indices en kotlin?
  • Kotlin: No se puede declarar un argumento de tipo mutableListOf en la definición de la class
  • Java Math como classs en Kotlin
  • Patrón de layout de puente que resulta en demasiados generics
  • Kotlin: ¿Cómo se accede a los methods get y setValue de un delegado?
  • Advertencia y abandono de Kotlin / Quasar Fiber