Kotlin: cómo puedo acceder a mi nueva function de extensión de class desde otro file

Soy muy nuevo en Kotlin.

Quiero poder agregar una function a mi class abstracta, así que cuando defina esa function podré invocar eso en cada niño de esa class (ellos henetworkingan la class abstracta)

Sin embargo, quiero definir esas funciones de extensión en otro file. No puedo acceder a esas funciones cuando bash invocarlas en una implementación hija particular de la class abstracta.

¿Cuáles son las reglas que debo tomar para resolver mi problema?

Quiero poder lograr algo como esto:

abstract class Parent(val val1, val val2, val val3){} class Child(var val1, var val2, var val3) : Parent(val1, val2, val3){} class Child2(var val1, var val2, var val3) : Parent(val1, val2, val3){} 

El método de extensión para padres y todos los hijos:

  fun Parent.convertToChild2( ): Child2? { return //some creation method of Child2 } 

Y quiero poder invocar esto:

 child: Child child.convertToChild2 

Definí todas las classs en un file separado y también la function de extensión en otro file.

No puedo acceder a la function de esta manera: no está visible.

Antes que nada: hay muchos errores en su código fuente, debe corregirlos antes de hacer la pregunta aquí (annotations de types faltantes en constructores, val / var faltante, etc.).

A su pregunta: normalmente, puede acceder a funciones de extensión incluso si está definido en diferentes files kt. Lea los documentos oficiales que cubren los ámbitos de extensión .

Es importante importar su function de extensión

La respuesta para mi pregunta, que me satisface es simplemente extraer el método a una estructura de "object" en otro file y cada vez que queremos acceder a esa function debemos importar la ruta (package.object.method) a esto.

Pero el problema es que IDE no me propone el path a mi function de extensión, debo importarlo yo mismo.

Estoy utilizando la vista previa de Android Studio 3, espero que esto se solucione.

ACTUALIZAR

Es mejor definir esas funciones en un solo file Kotlin, por lo que las funciones no serán propiedad de ninguna estructura. Entonces no será un problema importarlos automáticamente por IDE desde cualquier lugar.

  • Kotlin: hacer visible una function interna para testings unitarias
  • Realm Android consulta una list de primitivos que no funcionan
  • Escriba desajuste. Mapa obligatorio <String, Any> Found Map <String, Any?>
  • Error de reference no resuelto al llamar al método add en Kotlin Set interface
  • ¿Cómo recuperar el ID de recurso en fragment usando kotlin en Android?
  • Cómo exportar funciones de Kotlin a Javascript con el nombre correcto
  • reproducir cualquier video embedded en la vista web en Android con intención
  • TornadoFX reemplaza el layoutChildren en la región
  • Función de memorización en Kotlin
  • Kotlin: ¿Cómo puedo usar la reflexión en los packages?
  • Cómo acceder a los miembros de un object interno en Kotlin