是的,您可以在多个包中拥有两个同名的类。但是,不能使用两个语句在同一文件中导入这两个类。如果您确实需要同时引用其中一个类名称,则必须完全限定其中一个类名称。import
示例:假设您有
pkg1/某类.java
package pkg1;
public class SomeClass {
}
pkg2/某类.java
package pkg2;
public class SomeClass {
}
和主.java
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.
}
}