以下是我的代码中的import语句。导入的类位于同一个包comm
。
package comm;
import WikiLinksReducer;
import WikiPageLinksMapper;
import XmlInputFormat;
import RankCalculateMapper;
import RankCalculateReduce;
import RankingMapper;
编译代码时出现以下错误:
WikiPageRanking.java:2: '.' expected
import WikiLinksReducer;
^
WikiPageRanking.java:2: ';' expected
import WikiLinksReducer;
^
WikiPageRanking.java:3: class, interface, or enum expected
import WikiPageLinksMapper;
^
WikiPageRanking.java:4: '.' expected
import XmlInputFormat;
^
WikiPageRanking.java:4: ';' expected
import XmlInputFormat;
^
WikiPageRanking.java:5: class, interface, or enum expected
import RankCalculateMapper;
^
WikiPageRanking.java:6: '.' expected
import RankCalculateReduce;
^
WikiPageRanking.java:6: ';' expected
import RankCalculateReduce;
^
WikiPageRanking.java:7: class, interface, or enum expected
import RankingMapper;
答案 0 :(得分:0)
您不需要在与当前类相同的包中导入类,它们会自动导入。
答案 1 :(得分:0)
import语句用于从您的类所在的包以外的包中导入类。如果您使用的其他类在同一个包中,则无需导入包。
答案 2 :(得分:0)
我希望这可以作为一个可靠的答案!
Java软件包旨在成为一种管理文件命名和可见性的机制。
默认情况下,一个包中的类彼此之间具有“知识”,并且对于外部类中具有相同名称的类而言,它们是唯一的。程序包名称可确保命名约定仍然唯一。 Java软件包有更多细微差别,例如限制了软件包内部和软件包之间的可见性。 Oracle的详细教程不错。
作为一个简单的例子,请注意以下几点:
CLASSPATH
变量以包括您的软件包目录的路径。C:\java\mypackage
C:\java\mypackage\AccountBalance.java
C:\java\mypackage\Balance.java
C:\java\mypackage\Thing.java
package mypackage;
import mypackage.Thing; // unnecessary import, NOTE : name needs to be qualified w/ package
class AccountBalance {
public static void main(String args[]) {
Balance balance = new Balance("Jack", 123); // SAME package --> no need to import
balance.show();
Thing thing = new Thing("Jill");
System.out.println(thing.getName());
}
}
Balance.java
package mypackage;
class Balance {
String name;
double balance;
Balance (String name, double balance) {
this.name = name;
this.balance = balance;
}
void show() {
if (balance >0) {
System.out.print("-->");
System.out.println(name + " : $" + balance);
}
}
}
Thing.java
package mypackage;
class Thing {
String name;
Thing(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
C:\java\mypackage> javac AccountBalance.java Balance.java Thing.java
C:\java\mypackage> cd ..
C:\java> java mypackage.AccountBalance
执行注意事项:
AccountBalance.java
文件中,然后仅通过执行javac AccountBalance.java
进行编译,但这会随着文件的增长而变得混乱。mypackage.AccountBalance
来正确“命名”所有内容。从运行时的角度来看,AccountBalance
不存在。 mypackage.AccountBalance.java