Configurar enlaces de Guice en Kotlin

Quiero configurar los enlaces de Guice, así que creé un module en Java que funciona perfectamente:

public class CrashLoggerModule extends AbstractModule { @Override public void configure() { bind(CrashLogger.class).to(ConcreteCrashLogger.class); } } 

Luego convertí este código a Kotlin:

 public class CrashLoggerModule : AbstractModule() { override fun configure() { bind(javaClass<CrashLogger>()).to(javaClass<ConcreteCrashLogger>()) } } 

Desafortunadamente, la versión de Kotlin de esta class ya no funciona. Esto sucede porque Kotlin llama a su método interno public fun <A, B> A.to(that: B): Pair<A, B> lugar de LinkedBindingBuilder<T>.to(Class<? extends T> c) que da como resultado La encuadernación de Guice no está configurada correctamente.

¿Cómo puedo especificar explícitamente que quiero usar el método de class y no la function de extensión?

La forma más fácil es:

 bind(javaClass<CrashLogger>())!!.to(javaClass<ConcreteCrashLogger>()) 

también puedes hacer un lanzamiento explícito al tipo bind devuelve o ejecutar KAnnotator en Guice.

Tuve un problema similar con este código, pero en mi caso no puedo importar la function kotlin.jvm.javaClass en Intellij IDEA 2016 sin importar lo que haga. Entonces resuelvo el problema de la siguiente manera:

bind(CrashLogger::class.java).to(ConcreteCrashLogger::class.java)

// kotlin version = '1.0.6'

  • ¿Cuál es la expresión kotlin para un equivalente a este iterador python
  • Kotlin agrega escucha personalizada para hacer clic en widgets en Android
  • kapt - java.lang.OutOfMemoryError: límite superior de GC excedido
  • Cómo usar Mockito para Kotlin Fragment / Activity para simular kotlinx.android.synthetic views
  • Android Kotlin comienza una nueva actividad
  • Dagger 2 ContributesAndroidInjector proporciona actividad al module
  • AsyncTask sin fugas
  • TornadoFX cómo enlazar Node style (o styleClass) a una propiedad?
  • ¿Cómo escribo los corchetes de Java "" en Kotlin?
  • Intellij No se encontraron testings Kotlin
  • Cómo crear un map a partir de una list con una list interna usando Kotlin