Importar clases privadas de paquetes a JShell
Estaba jugando con JShell después del lanzamiento de Java 9, e intenté importar un paquete que hice. Como toda la aplicación para la que la estoy codificando estará contenida en ese paquete, cada clase menos una (que aún no he codificado) es privada del paquete. Mi classpath es correcto, pero todavía no puedo usar ninguno de los tipos declarados en el paquete en JShell (arroja un error "no se puede encontrar el símbolo").¿Debo hacerlos públicos para que sean accesibles, o hay alguna forma de probar las clases privadas de paquetes?? Aquí está el código exacto que probé.
Mi directorio actual es
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\src
Mi camino de clase es
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\cls
y el directorio del paquete (para el código de bytes) es
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\cls\collatz
CollatzSequence
es una clase de paquete privado contenida encollatz
.
PS C:\Users\Sylvaenn> cd OneDrive\Documents\Programs\Java\src
PS C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\src> jshell
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell> import collatz.*;
jshell> CollatzSequence seq = new CollatzSequence(BigInteger.ONE);
| Error:
| cannot find symbol
| symbol: class CollatzSequence
| CollatzSequence seq = new CollatzSequence(BigInteger.ONE);
| ^-------------^
| Error:
| cannot find symbol
| symbol: class CollatzSequence
| CollatzSequence seq = new CollatzSequence(BigInteger.ONE);
| ^-------------^
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
| import collatz.*
jshell>