Reflexión de kotlin para el método de Java que acepta una matriz de class nula

Tengo un código de Java como este:

Method m = device.getClass() .getMethod("removeBondNative", (Class[]) null); m.invoke(device, (Object[]) null); 

y estoy tratando de escribir lo mismo en Kotlin de esta manera:

 device.javaClass.getMethod("removeBondNative", null as Class<*>).invoke(device, null as Any) 

pero recibo este post de error:

 Process: com.example.zemcd.toofxchange, PID: 17466 kotlin.TypeCastException: null cannot be cast to non-null type java.lang.Class<*> at com.example.zemcd.toofxchange.BluetoothUtils$Companion.unPair(BluetoothUtils.kt:61) at com.example.zemcd.toofxchange.DeviceAdapter$DeviceHolder$bindItems$1$$special$$inlined$forEach$lambda$1.onClick(DeviceAdapter.kt:98) at android.view.View.performClick(View.java:5217) at android.view.View$PerformClick.run(View.java:21349) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5585) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 

También traté de cambiar null a Unidad:

 device.javaClass.getMethod("removeBondNative", Unit as Class<*>).invoke(device, null as Any) 

pero aún encuentro un error:

 Process: com.example.zemcd.toofxchange, PID: 19219 java.lang.ClassCastException: kotlin.Unit cannot be cast to java.lang.Class at com.example.zemcd.toofxchange.BluetoothUtils$Companion.unPair(BluetoothUtils.kt:61) at com.example.zemcd.toofxchange.DeviceAdapter$DeviceHolder$bindItems$1$$special$$inlined$forEach$lambda$1.onClick(DeviceAdapter.kt:98) at android.view.View.performClick(View.java:5217) at android.view.View$PerformClick.run(View.java:21349) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5585) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 

¿Qué estoy haciendo mal aquí? ¿Cómo se puede reflejar la reflexión de Java en Kotlin en una situación como esta?

El post de error le indica el problema: Class<*> es un tipo no nulo, por lo que le arroja siempre que el valor arrojado no es nulo. ¿Podría escribir null as Class<*>? , pero eso sería equivalente a (Class) null . ¿Quieres null as Array<Class<*>>? en lugar.

Sin embargo, en cualquier caso esto parece inútil: "Si parameterTypes es nulo, se trata como si fuera una matriz vacía", por lo que .getMethod("removeBondNative") debería darle el mismo resultado.