在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
我只是將它包含在我的編輯中。 –