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.

  • ¿Cuál es la forma canónica de convertir un array <Byte> a un ByteArray
  • RxJava: onBackpressureBlock () comportamiento extraño
  • Funciones elementales en kotlin
  • varargs para mapear en Kotlin
  • Ocultar constructores por defecto de vista
  • ¿Cuál es la forma correcta de hacer reference a un div dentro de ReactDOMBuilder.render?
  • Kotlin: matriz de generics
  • Obtención de class no encontrada Excepción al usar KotlinJsonAdapterFactory () en Moshi 1.5 con Kotlin
  • Obtener reference de class de la function de nivel superior en kotlin
  • Kotlin - Continuar con la Corutina después de la Excepción
  • Referencia no resuelta a la function en Kotlin Android