在Java 9发布后,我正在使用JShell,并尝试导入我制作的包。由于我为它编写的整个应用程序将包含在该包中,除了一个类(我还没有编码),每个类都是包私有的。我的类路径是正确的,但我仍然无法使用JShell包中声明的任何类型(它会引发“无法找到符号”错误)。 我是否需要让它们公开才能使用它们,或者有什么方法可以测试包私有类?这是我尝试的确切代码。将包私有类导入到JShell中
我的当前目录是
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\src
我的类路径是
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\cls
和封装目录(字节码)是
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\cls\collatz
CollatzSequence
是套餐的包含在中的私人课程。
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>
能否请您分享的情况下可重复的代码?这将有助于明确问题。 – nullpointer
我只是将它包含在我的编辑中。 –