是的,你可以有兩個班在多個包中的同名。但是,您無法使用兩個import
語句在同一個文件中導入這兩個類。如果你真的需要引用它們,你將不得不完全限定其中一個類名。
例子:假設你有
的pkg1/SomeClass.java
package pkg1;
public class SomeClass {
}
則pkg2/SomeClass.java
package pkg2;
public class SomeClass {
}
和Main.j AVA
import pkg1.SomeClass; // This will...
import pkg2.SomeClass; // ...fail
public class Main {
public static void main(String args[]) {
new SomeClass();
}
}
如果你試圖編譯,你會得到:
$ javac Main.java
Main.java:2: pkg1.SomeClass is already defined in a single-type import
import pkg2.SomeClass;
^
1 error
然而,這並不編譯:
import pkg1.SomeClass;
public class Main {
public static void main(String args[]) {
new SomeClass();
new pkg2.SomeClass(); // <-- not imported.
}
}
你能看看我更新的問題嗎? – Rachel 2010-10-29 20:34:17
這正是我們面臨的問題,它的工作是什麼? – Rachel 2010-10-29 20:35:01
更新了答案。您必須完全符合其中一個類標識符。 :-) – aioobe 2010-10-29 20:35:50