クラスをデフォルト パッケージに保存した場合にのみ、参照されたライブラリ クラスにアクセスできます。他のパッケージからアクセスしようとすると、「className を解決できません」というメッセージが表示されます。なぜこれが起こるのでしょうか?
3 に答える
そのパッケージは、簡単な Google の後のプリンストンの IntroCS コースの標準ライブラリからのものです。
ページ http://introcs.cs.princeton.edu/java/stdlib/の FAQ に従ってください。
Q. 名前付きパッケージを使用してコードを構成すると、コンパイラは stdlib.jar 内のライブラリにアクセスできなくなります。なぜだめですか?A. stdlib.jar のライブラリは「デフォルト」パッケージにあります。Java では、名前付きパッケージからデフォルト パッケージのクラスにアクセスすることはできません。名前付きパッケージでライブラリを使用する必要がある場合は、パッケージ化されたバージョンの stdlib-package.jar を使用できます。
パッケージの jar ファイルをダウンロード: http://introcs.cs.princeton.edu/java/stdlib/stdlib-package.jar
プロジェクト フォルダを右クリックし、外部 JAR を追加します。
import edu.princeton.cs.introcs.*;
クラスを参照する必要があるクラスに上記の行を追加します。最初の行は正しいパッケージ名を参照し、* ワイルドカードはその中のすべてのクラスをインポートします。
:)それが役立つことを願っています。
//編集 - プロジェクト フォルダーを右クリックして [Organize Imports] を使用すると高速になるため、各クラスに手動で追加する必要はありません。
適切なimport
宣言があり、参照している型にpublic
アクセス修飾子があるかどうかを確認してください。
デフォルト パッケージのタイプのインポート宣言は、定義上不可能です。JLS は、名前のないパッケージから型をインポートするとコンパイル時エラーになると指定しています。リフレクションを介してクラスにアクセスするか、デフォルトのパッケージを使用しない方がよいでしょう。デフォルト パッケージ内にタイプを作成する場合、Eclipse は警告を表示する必要があります。これは一般に推奨されないためです。
Eclipse などの IDE を使用している場合は、それを使用するクラスの型名の後ろにあるCTRL+を押してみてください。SPACEEclipse は、一致するすべての機会を提供し、クラスを選択すると自動的にインポートを追加します。
パッケージを他のパッケージにインポートする必要があります。
あるパッケージ内のクラスは、参照されない限り、他のパッケージを直接参照できません。