我不太确定我做错了什么,这里。我在一个目录中有两个文件,让我们称它们为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;
?相反,我该如何使其发挥作用?
答案 0 :(得分:1)
由于这两个文件位于同一个包(com.domain.package
)中,因此您根本不需要导入FileB
。您应该可以直接引用它。
此外,请确保FileA
和FileB
都放在其包文件夹中:com / domain / package。
答案 1 :(得分:1)
FileB的包是com.domain.package
。您正尝试使用package.FileB
代替。
答案 2 :(得分:1)
package
是reserved word,请勿将其用作包名称的一部分。如果您尝试在Eclipse中添加包含“package”的包,则会收到错误消息:
Invalid package name. 'package' is not a valid Java identifier
重命名包,然后删除import语句。您不需要导入与其引用的文件包在同一包中的文件。
答案 3 :(得分:0)
@rgettman有正确的解决方案。使用javac FileA.java FileB.java
编译这两个文件可以解决此问题。您也可以使用他的建议:javac *.java