Предположим, что у нас есть эти пакеты и классы:
package p1;
public class A1 {
public static void a() {}
}
package p2;
public class A1 {
public static void a() {}
}
package p3;
import static p1.A1.a;
import static p2.A1.a;
public class A1 {
public static void test() {
}
}
Мне интересно, почему статический импорт методов является законным (не приведет к ошибке времени компиляции) в пакете p3
? Мы не сможем использовать их далее в методе test()
, поскольку такое использование приведет к ошибке времени компиляции.
Почему это не то же самое, что при нормальном импорте классов. Допустим, мы хотели бы импортировать классы A1
из пакетов p1
и p2
в p3
:
package p3;
import p1.A1;
import p2.A1;
такой импорт является незаконным и приведет к ошибке времени компиляции.