【发布时间】:2012-10-12 03:39:24
【问题描述】:
假设我们有这些包和类:
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() 方法中进一步使用它们,因为这样使用会导致编译时错误。
为什么它与普通的类导入不同。假设我们想从包 p1 和 p2 导入类 A1 到 p3:
package p3;
import p1.A1;
import p2.A1;
这样的导入是非法的,会导致编译时错误。
【问题讨论】:
-
因为包和类组合唯一地将一种方法与另一种方法区分开来。
-
@duffymo - 他特别问为什么静态导入方法时没有名称冲突,您没有解决。
-
我想是的。区分 betweek a.b.c 和 a.d.c 没有问题;编译器也没有。
标签: java import static-import