Да, у вас может быть два класса с одним и тем же именем в нескольких пакетах. Однако вы не можете импортировать оба класса в одном файле , используя два оператора import
. Вам нужно будет полностью указать одно из имен классов, если вам действительно нужно сослаться на них обоих.
Пример: Предположим, у вас есть
pkg1 / SomeClass.java
package pkg1;
public class SomeClass {
}
PKG2 / SomeClass.java
package pkg2;
public class SomeClass {
}
и Main.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.
}
}