permissionsdispatcher и несколько @ NeedsPermission с kotlin

Для одного разрешения я могу использовать permissionsdispatcher в java и kotlin – но когда дело доходит до нескольких разрешений вроде этого:

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

У меня проблема с kotlin – она ​​не принимает больше одного параметра там – отлично работает с java

    В Java {} представляет собой создание массива, и в этом контексте в Kotlin {} случайно создает лямбда-выражение, и не может быть определено, что вы намереваетесь, потому что код внутри лямбда недействителен.

    Таким образом, вы говорите @NeedsPermission(someFunctionReferenceThatIsInvalid) вместо передачи в массиве разрешений как @NeedsPermission(array)

    В аннотации массив обрабатывается как vararg поэтому вы можете просто перечислить элементы:

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

    Если он рассматривается как массив, вы должны использовать функцию arrayOf :

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

    Примеры создания массива, а затем с помощью оператора * spread в основном делают, а затем уничтожают массив, и это необязательно.

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

    В java @NeedsPermission({...}) фигурные скобки {...} – это всего лишь сокращение для создания массива. В kotlin вы должны явно сказать, что это массив, потому что {} зарезервирован для лямбда-выражений.