上記のように、algs4.jar ファイルを参照ライブラリとしてインポートしました。すべて問題ないようですが、ライブラリ内のどのクラスも使用またはアクセスできないようです。
不足しているインポートステートメントはありますか?
画像参照:
参照されたライブラリからどのように使用しようとしているかに注意してください。ただしBinarySearch
、それを使用またはインポートするオプションは提供されていません。
algs4.jar参照ライブラリを利用するCourseraを介し てアルゴリズムクラスを受講しています。
問題:
あなたが抱えている問題は、参照ライブラリがデフォルトのパッケージにあり、参照ライブラリにアクセスしているソースがそうでないことです。
ソリューション
プロジェクト内のすべてのクラスはデフォルト パッケージに含まれている必要があります。そうしないと、参照ライブラリ (デフォルト パッケージにある) が認識されません。プロジェクト クラスは src ディレクトリにある必要があり、.java ファイルの先頭でパッケージを宣言しないでください。さらに、リファレンス ライブラリをビルド パスに追加したことも確認する必要があります。
よくわかりません、私はこれを試しませんでした。しかし、いくつかの解釈。
これは標準ライブラリですか、それとも誰かが自分で作成してあなたにくれたのですか?
問題は、クラスBinarySearch
がdefault
パッケージに含まれていることです。インポートできなくなります。このライブラリがあなたまたはあなたの友人によって作成された場合は、すべてのクラスをデフォルトのパッケージから適切な名前空間に移動してからjarを再作成するように友人に依頼する必要があります。
クラスにアクセスできる場合はctr + shift + o
、クラスをインポートする必要があります。
jar ファイル内のクラスはすべてデフォルト パッケージに含まれていることに注意してください。
クラスがパッケージに含まれている場合、直接アクセスすることはできません。
これらのjarファイルが属するアルゴリズムコースを受講しているため、この回答を送信します。これが、プログラムが機能しない特定の原因でした。
クラスをインポートする場合は、ライブラリのパッケージ バージョンをダウンロードする必要があります。このウェブページの下部にある Q&A セクションを参照してください。 http://introcs.cs.princeton.edu/java/stdlib/
Q. 名前付きパッケージを使用してコードを構成すると、コンパイラは stdlib.jar 内のライブラリにアクセスできなくなります。なぜだめですか?
A. stdlib.jar のライブラリは「デフォルト」パッケージにあります。Java では、名前付きパッケージからデフォルト パッケージのクラスにアクセスすることはできません。名前付きパッケージでライブラリを使用する必要がある場合は、パッケージ化されたバージョンの stdlib-package.jar を使用できます。
まず、BinarySearch を作成できません (プライベート コンストラクター)。静的メソッドを使用するBinarySearch.rank(int key, int[] array)
次に、デフォルトのパッケージからのみ BinarySearch にアクセスできます
第三にどうArrays.binarySearch(array, key)
ですか?