1

私のディレクトリ構造は次のとおりです。

/WorkingDirectory
    MyCollection.java
    /au/edu/au
        /UserInterface
            UserInterface.java
        /Collection
            Album.java
            CDAlbum.java
            DVDAlbum.java
            CollectionFactory.java

ここで、Album.javaは、CDAlbum.javaおよびDVDAlbum.javaによって実装されるインターフェースです。各.javaファイルには適切な

package au.edu.uow.UserInterface;

また

package au.edu.uow.Collection;

ライン。

UserInterface.javaで、AlbumタイプのArrayListを宣言します。これにより、次のコンパイルエラーが発生します。

.\au\edu\uow\UserInterface\UserInterface.java:9: error: cannot find symbol
    private ArrayList<Album> myCollection;
                      ^
symbol:   class Album
location: class UserInterface

両方のパッケージのインポートステートメントがあるMyCollection.javaからコンパイルしています。

このエラーの原因は何ですか?追加してみました

import au.edu.uow.Collection

UserInterface.javaに追加しますが、役に立ちません。

4

2 に答える 2

7

次のいずれかが必要です。

import au.edu.uow.Collection.*;

また:

import au.edu.uow.Collection.Album;

ワイルドカードインポートを使用する方が便利ですが、これは悪い習慣だと考える人もいます。これはスタイルの問題です。自分で決めてください。

また、パッケージ名をすべて小文字にすることも適切なスタイルと見なされますが、これはコンパイラーによって強制されません。

于 2012-08-25T03:09:26.297 に答える
0

つまり、フォルダ構造は次のように/au/edu/auなります。au.edu.uow

packageJimNが提案したこととは別に、Javaは、teが存在しないか、ファイル/au/edu/auが間違っていると文句を言うでしょう。package

ディレクトリ構造またはpackage構造を互いに一致するように変更します

于 2012-08-25T03:16:00.643 に答える