导入和包

时间:2013-03-20 18:15:09

标签: java packages

我不太确定我做错了什么,这里。我在一个目录中有两个文件,让我们称它们为FileA.java和FileB.java。

FileA.java的定义如下:

package com.domain.package;

import stuff;
import package.FileB;

public class FileA extends Blah implements Listener {
    /* global vars */
    /* methods */
}

FileB.java是我的数据对象类,我想从FileA.java引用它:

Map<Object, FileB> varname;

按照以下方式使用:

varname = new HashMap<Object, FileB>();
另一方面,

FileB.java定义如下:

package com.domain.package;

import stuff;

public class FileB {
    /* global vars */
    public FileB() {
         /* stuff */
    }
}

为什么我会:

FileA.java:20: package package does not exist
import package.FileB;

?相反,我该如何使其发挥作用?

4 个答案:

答案 0 :(得分:1)

由于这两个文件位于同一个包(com.domain.package)中,因此您根本不需要导入FileB。您应该可以直接引用它。

此外,请确保FileAFileB都放在其包文件夹中:com / domain / package。

答案 1 :(得分:1)

FileB的包是com.domain.package。您正尝试使用package.FileB代替。

答案 2 :(得分:1)

packagereserved word,请勿将其用作包名称的一部分。如果您尝试在Eclipse中添加包含“package”的包,则会收到错误消息:

Invalid package name. 'package' is not a valid Java identifier

重命名包,然后删除import语句。您不需要导入与其引用的文件包在同一包中的文件。

答案 3 :(得分:0)

@rgettman有正确的解决方案。使用javac FileA.java FileB.java编译这两个文件可以解决此问题。您也可以使用他的建议:javac *.java