10

クラスをデフォルト パッケージに保存した場合にのみ、参照されたライブラリ クラスにアクセスできます。他のパッケージからアクセスしようとすると、「className を解決できません」というメッセージが表示されます。なぜこれが起こるのでしょうか?

ここに画像の説明を入力

4

3 に答える 3

18

そのパッケージは、簡単な 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] を使用すると高速になるため、各クラスに手動で追加する必要はありません。

于 2012-09-06T02:41:31.757 に答える
3

適切なimport宣言があり、参照している型にpublicアクセス修飾子があるかどうかを確認してください。

デフォルト パッケージのタイプのインポート宣言は、定義上不可能です。JLS は、名前のないパッケージから型をインポートするとコンパイル時エラーになると指定しています。リフレクションを介してクラスにアクセスするか、デフォルトのパッケージを使用しない方がよいでしょう。デフォルト パッケージ内にタイプを作成する場合、Eclipse は警告を表示する必要があります。これは一般に推奨されないためです。

Eclipse などの IDE を使用している場合は、それを使用するクラスの型名の後ろにあるCTRL+を押してみてください。SPACEEclipse は、一致するすべての機会を提供し、クラスを選択すると自動的にインポートを追加します。

于 2012-09-05T18:02:33.650 に答える
1

パッケージを他のパッケージにインポートする必要があります。

あるパッケージ内のクラスは、参照されない限り、他のパッケージを直接参照できません。

于 2012-09-05T18:01:07.793 に答える