Creación de instancia pública de class interna privada en Kotlin

¿Por qué Kotlin no permite la creación de instancias públicas de classs internas privadas a diferencia de Java?

Funciona en Java:

public class Test { public A a = new A(); private class A { } } 

No funciona en Kotlin ( A class tiene que ser public ):

 class Test { var a = A() // ^ // 'public' property exposes its private type 'A' private inner class A } 

Asumiría porque no hay realmente un caso en el que parezca correcto hacer. Cualquier código que acceda a la propiedad a no tendría acceso a su tipo. No se pudo asignar a una variable. Test.A myVar statement de Test.A myVar fuera de la class de Test arrojaría un error. Al no permitirlo, el código será forzado a ser más consistente. Una mejor pregunta sería por qué Java lo permitiría? Otros idiomas, como swift, tienen la misma restricción.

https://kotlinlang.org/docs/reference/visibility-modifiers.html#classes-and-interfaces

estados:

NOTA para usuarios de Java: la class externa no ve miembros privados de sus classs internas en Kotlin.

Para su uso, puede usar Clases anidadas

En private inner classes , solo puede acceder a los miembros de su class externa.

Creo que el equipo de Kotlin lo implementó de esa manera, por lo que es posible networkingucir el scope de los miembros en private inner classes para que sea accesible solo dentro de la inner class . Creo que esto no es posible en Java.

  • Clase de datos de Kotlin con properties derivadas
  • Convirtiendo java en kotlin
  • La 'anulación' del modificador no es aplicable a 'getter'
  • Quiero abrir files desde carpetas
  • Errores de estudio de Android Kotlin de data binding
  • Función de extensión Kotlin: reference no resuelta
  • Kotlin - Lista dentro de un filter de list
  • La anotación de ButterKnife @OnClick no funciona en el fragment de Kotlin
  • ¿Cómo continuar el procesamiento después de que ocurra un error en RxJava 2?
  • Las collections de Kotlin lanzan ClassNotFoundException en Android
  • Probando actores Akas con Kotlin y akka-testkit