¿Clase interna dentro de su superclass abstracta en Kotlin?

Si un set de classs internas son las únicas implementaciones (subclasss) de su class externa que contiene el resumen, ¿cómo se instancian?

abstract class A { inner class A1 : A() inner class A2 : A() } 

En otras palabras, ¿cuál es la syntax para build una instancia de A1 o A2 ?

EDITAR: … fuera del cuerpo de la class A.

¿Estás buscando esto?

 abstract class A { fun doSome() { // OK val a1 = A1() val a2 = A2() } inner class A1 : A() inner class A2 : A() } 

Creo que probablemente quiera build instancias de A1 / A2 fuera de A, como:

 abstract class A { inner class A1 : A() inner class A2 : A() } fun doSome() { // Error val a1 = A1() val a2 = A2() } 

Esto no está permitido tanto en Kotlin como en Java, porque la class interna tiene ponters para la class externa. Si quiere build A1 / A2 fuera de A , simplemente elimine los modificadores inner .

 abstract class A { class A1 : A() class A2 : A() } fun doSome() { // OK again val a1 = A.A1() val a2 = A.A2() } 

Además, además, como dijiste que es

un set de classs internas son las únicas implementaciones (subclasss) de su class externa que contiene el resumen

Puede replace abstract modificador abstract por sealed . Esto ayudará a Kotlin a hacer checkout de exhautividad when exprese.

  • ¿Hay alguna forma de implementar la aplicación del server back-end (Kotlin) en Firebase?
  • antes en Kotlin
  • Simulacro y testing de unidad un Fragmento usando Spek y Mockito
  • Notificación de Android no aparece en la API 26
  • Firebase Firestre ¿cómo enumerar los documentos autorizados?
  • ¿Cómo establecer el atributo de peso de forma dinámica desde el código de Kotlin?
  • Android Plugin 2.2.0-alpha1 no comstack con Kotlin
  • ¿Cómo usar una biblioteca reutilizable en kotlin, con Android y javascript?
  • Propiedades del constructor Kotlin y llamar a diferentes constructores de superclass
  • Android Studio muestra la advertencia de dependencia de Kotlin después de la segunda compilation
  • Fusionar datos de diferentes Observables y elegir diferentes estrategias de búsqueda, según la disponibilidad de datos