Clase extendida con muchos parameters

Tengo una class llamada A:

open class A (a: String, b: String, c: String) 

Y una class B que se extiende A:

 class B(a: String, b: String, c: String, d: String) : A(a, b, c) 

Mi pregunta es si hay una manera de hacer algo como esto, para evitar declarar todos los parameters de A dentro del constructor B:

 class B(super, d:String) : A(super) 

Si no, debería haber =)

Puede crear una interfaz común para las classs y luego usar la delegación para acercarse lo que desea. Me gusta esto:

 interface C { val a: String val b: String val c: String } class A(override val a: String, override val b: String, override val c: String) : C class B(c: C, val d: String) : C by c 

Al hacer esto, puedes instanciar una B como esta:

 val b = B(A("1", "2", "3"), "4") 

No , Kotlin no contiene ningún constructo que le permita simplificar los parameters del constructor que coinciden con los parameters de la superclass.

No creo que esté de acuerdo con que esta sea una característica del lenguaje, pero recomendaría comenzar una conversación en YouTrack si cree que debería ser.

Cuando se encuentre con este problema, debe preguntarse por qué dicha class necesita muchos parameters / dependencies en lugar de descubrir la solución por syntax del lenguaje. Tal vez su responsabilidad no está clara.

SI hay muchos conceptos de dominio mezclados en una class, entonces necesita networkingiseñar sus classs de la siguiente manera:

 data class C(val a: String, val b: String, val c: String) open class A(val c:C) class B(c:C, val d: String) : A(c) 

SI encontró que B no es-A A , entonces debe usar composition en lugar de inheritance, por ejemplo:

 open class A (a: String, b: String, c: String) class B(val a:A, val d: String) 

No, no hay tal manera. Desafortunadamente, debes hacer esto manualmente

  • Verificando si la cadena está vacía en Kotlin
  • ¿Cómo escribiría el código de kotlin idiomático que pasa por un subprocess y procesa la salida desde él?
  • Kotlin inteligente echó el segundo valor de un par con filter
  • Kotlin: Cómo iniciarse perezoso en un vector
  • Habitación con Dagger en Kotlin: Dao es nulo, cuando se inyecta en una class
  • Kotlin / IntelliJ: el comstackdor no puede encontrar el tipo de parámetro correcto de la function
  • ¿Cómo sé el tipo inferido en Kotlin?
  • Maneras de ofuscar el acceso a miembros de la class preferentemente privados, pero en realidad públicos, con el fin de utilizarlos en methods en línea
  • ¿Cómo se organizan múltiples corrutines y bloques de expectativas en una testing de Kotlin Spek?
  • Especificación Jpa para encontrar un subset del valor del campo
  • use kotlin para springmvc No se pudo crear una instancia de la class de datos de la class bean