为什么具有相同名称的静态方法的静态导入是合法的?
2022-09-01 11:52:41
假设我们有这些包和类:
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;
这样的导入是非法的,会导致编译时错误。