Usar la implementación de la function por defecto de la interfaz en Kotlin

Tengo una interfaz de Kotlin con una implementación pnetworkingeterminada, por ejemplo:

interface Foo { fun bar(): String { return "baz" } } 

Esto estaría bien hasta que intente implementar esta interfaz desde Java. Cuando lo hago, dice que la class debe marcarse como abstracta o implementar el método bar() . Además, cuando bash implementar el método, no puedo llamar a super.bar() .

Por favor vea el problema relacionado .

Hay una recomendación en los comentarios:

Escriba su interfaz en Java (con los methods por defecto) y las classs de Java y Kotlin usan correctamente esos valores pnetworkingeterminados

A diferencia de la versión anterior de Java8, Kotlin puede tener una implementación pnetworkingeterminada en la interfaz.

Cuando implementa la interfaz Foo en una class Java. Kotlin oculta la implementación del método de interfaz. Como se indica aquí .

Las matrices se usan con types de datos primitivos en la plataforma Java para evitar el costo de las operaciones de boxeo / desempaquetado. Como Kotlin oculta esos detalles de implementación, se requiere una solución para interactuar con el código de Java

Esto es específico para las matrices en el enlace de arriba, pero también se aplica a todas las classs (puede ser para dar soporte a la versión anterior de Java8).

EDITAR

La explicación anterior está basada en opinión.

Una cosa que encontré y esa es la razón principal.

Los binarys de Kotlin se comstackron con bytecode versión 1.8 de Java sin methods pnetworkingeterminados en las interfaces. Y se enfrentan a un problema crítico para resolverlo.

  • Inyectar no funciona con el segundo constructor
  • Referencia no resuelta de Kotlin en time de compilation
  • Conversión de methods de estilo de procedimiento a estilo funcional
  • Kotlin "El reparto inteligente es imposible, porque la propiedad podría haberse cambiado en este momento"
  • Filtrar por la propiedad de la class enum Kotlin
  • Llamada asincrónica para cada elemento dentro de una colección
  • Cómo realizar la initialization en varios pasos de val
  • No se puede ejecutar el file jar. (Error: no se pudo encontrar o cargar la class principal co.pissarra.Mainkt)
  • Referencia no resuelta dentro del oyente Kotlin anónimo
  • La class interna crea fallas en Kotlin
  • ¿Puedo get una KFunction de una variable del tipo de function en Kotlin?