Combina Java con Kotlin en Android

Estoy moviéndome ligeramente de Java a Kotlin en el desarrollo de aplicaciones de Android, pero hay algunos casos en los que no quiero codificar en Kotlin y quiero que esos casos particulares se escriban en Java:

  • Es un esfuerzo ahorrar que Kotlin elimine el uso adicional de findViewByIds
  • Sé que ahora es null-safety que, de manera opuesta, Java siempre se activa con NullPointerException
  • También se proporcionan expresiones Lambda y muchas otras características.

Pero aún así, algunos de mis códigos no pueden escribirse en Kotlin, como miembros static o campos non-primitive .

Las annotations de Kotlin realmente pueden replace esos static members . Pero me encantan algunas características de encoding de Java y no quiero dejar eso.

Mi pregunta es si puedo combinar Java y Kotlin juntos.

Si su pregunta es si puede usar files kotlin en files java y viceversa, la respuesta es sí.

Si está preguntando si puede usar la syntax de kotlin en files java y viceversa, entonces la respuesta es no.

Para usar el código de kotlin en una class de Java, simplemente está usando la class como cualquier otra class de Java

Puede crear variables estáticas Java similares utilizando un object complementario .

Puede crear fácilmente singleton en Kotlin usando object .

Después de apoyar a Kotlin. He migrado todos mis códigos a Kotlin.

Incluso si se trata de interoperabilidad, no puede mezclar Java y Kotlin en el mismo file.

Si realmente desea tener variables / methods estáticos, puede usar un companion object . También puede acceder a crear un método estático "real" en su JVM utilizando @JvmStatic .

Muestra simple es:

 companion object { @JvmStatic fun newInstance() ) SampleFragment() } 

que es igual a

 public static SampleFragment() { return new SampleFragment(); } 

Al usar @JvmStatic puede usar Java para acceder a sus methods estáticos como antes.

Puede tener en su proyecto classs y actividades de Java y Kotlin.

La misma class no puede tener Java y Kotlin. Puede convertir un file Java en Kotlin con Ctrl + Alt + Shift + K o simplemente haga doble clic en SHIFT y busque Convertir Java en Kotlin

  • Error de desencryption de Phpseclib al descifrar el contenido encriptado en Java
  • Fuera de memory usando Volley en Kotlin
  • Confundido sobre la asignación de la variable RxJava
  • Migración de Java a Kotlin
  • Prueba JUnit en Kotlin
  • ¿Cómo establecer una preference de valor en Kotlin?
  • Kotlin android studio Intento cambiar el text del button pero obtengo el post "se espera un valor de tipo boolean"
  • ¿Cómo usar la inheritance simple para la class de datos?
  • Tornadofx tableview sincroniza dos tablas
  • ¿Cuál es una forma adecuada de crear una instancia de class a partir de KType?
  • Implementando una interfaz con function parametrizada