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.

  • Las dependencies de Bintray no se downloadán en InteliJ
  • ¿Cómo superar el error "la misma firma JVM" al implementar una interfaz Java?
  • AspectJ Problemas del comstackdor con la delegación de kotlin en la jerarquía de types
  • Kotlin: function genérica como tipo de retorno?
  • ¿Cuál es la forma correcta de configurar y generar una database con datos artificiales para testings de integración?
  • Función rxjava :: zip devuelve un resultado vacío
  • ¿Cómo se verifica el tipo genérico en Kotlin?
  • Llamar a una function de order superior de Kotlin desde Java
  • Cómo especificar un parámetro de tipo que no sé
  • findViewById ClassCastExcpetion
  • Definir el tipo de retorno de modificación utilizando la interfaz en lugar de la class