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

  • ¿Cómo uso AnkoComponent dentro de FirebaseRecyclerAdapter?
  • ¿Las classs de Kotlin que henetworkingan de las classs de Java también henetworkingan de Cualquiera?
  • ¿Cómo puedo usar la callback en Kotlin?
  • Diseño de consulta de database de Firebase
  • ¿Cómo puedo hacer un salto de línea (continuación de línea) en Kotlin?
  • Spring Boot no puede ejecutar una testing individual en IntelliJ
  • LIBGDX 3D: desactivar texturas en shader: OpenGL
  • Android NestedScrollView.smoothScrollBy () desplazándose demasiado
  • ¿Cómo puedo unir dos RxJava2 Obvervables por key?
  • Gradle KTS. ¿Cómo mover la configuration de dependencies a un file separado de la compilation principal?
  • Comportamiento System.identityHashCode () en primitivas