Usando @JvmOverloads de Kotlin con el patrón Fragment.newInstance () de Android

Intenté lograr esto definiendo tanto la diversión de alto nivel como la diversión estática de un object compañero, pero obtengo el mismo resultado. Puedo ver los methods generados, pero no hay ninguno para newInstance(mouse: Mouse?) ¿Qué estoy entendiendo mal sobre cómo se llama esto desde Java?

 // MyFragment.kt @JvmOverloads fun newInstance(bird: Bird? = null, bee: Bee? = null, cat: Int? = -1, mouse: Mouse? = null) : MyFragment { //Put params in Bundle, put bundle in fragment... return MyFragment() } // MyActivity.java MyFragment fragment = MyFragmentKt.newInstance(bird, bee, cat); // compiles MyFragment fragment = MyFragmentKt.newInstance(mouse); // does not compile 

La anotación @JvmOverloads hace que el comstackdor genere todos los methods al omitir los parameters finales. No genera methods para todas las permutaciones de parameters.

Si un método tiene N parameters y M de los cuales tiene valores pnetworkingeterminados, se generan M sobrecargas: el primero toma los parameters N-1 (todos less el último que toma un valor pnetworkingeterminado), el segundo toma los parameters N-2 , y así en.

Así que MyFragmentKt.newInstance(bird) existirá, mientras que MyFragmentKt.newInstance(mouse) o incluso MyFragmentKt.newInstance(bee) no existirán.

  • ¿Por qué mi editor deslizante no funciona en la cuadrícula Vaadin 8?
  • Anular la anotación @JsonIgnore para algunos controlleres. Jackson. Primavera
  • Kotlin, receptor de funciones de casting
  • Completion Handler Android Kotlin
  • cuando expresión kotlin cómo comprobar cuándo a & b
  • Cómo leer un file de text de Firebase a la aplicación de Android
  • La aplicación onCreate no se llama para las comstackciones de producción
  • Encuadernación en map con KClass Type
  • Cómo upload files a S3 Amazon por Okhttp3 y Android
  • ¿Cómo convierto un dígito Char (0-9) a su valor numérico?
  • Esperando la statement del miembro