我的目录结构如下:
/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语句。
导致此错误的原因是什么?我尝试添加
import au.edu.uow.Collection
到UserInterface.java,但无济于事。
答案 0 :(得分:7)
您需要:
import au.edu.uow.Collection.*;
或:
import au.edu.uow.Collection.Album;
使用通配符导入更方便,但有些人认为这是一种不好的做法。这是一个风格问题;自己决定。
对于包名称来说,它也被认为是小写的好方式,尽管编译器没有这样做。
答案 1 :(得分:0)
所以,你的文件夹结构看起来像/au/edu/au
&amp;您尝试从au.edu.uow
除了JimN的建议之外,我想你会发现Java会抱怨te package
不存在或/au/edu/au
中的文件错误package
< / p>
更改目录结构或package
结构以使其彼此匹配