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

除了 JimN 的建议之外,我想你会发现 Java 会抱怨 tepackage不存在或其中的文件/au/edu/au有误package

更改目录结构或package结构以相互匹配

于 2012-08-25T03:16:00.643 回答