これらのパッケージとクラスがあるとしましょう:
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() {
}
}
package でメソッドの静的インポートが合法である(コンパイル時エラーにならない)のはp3
なぜですか?test()
そのような使用法はコンパイル時エラーを引き起こすため、メソッドでそれらをさらに使用することはできません。
クラスの通常のインポートと同じではない理由。A1
パッケージからクラスをインポートしたいとしp1
ましょp2
うp3
:
package p3;
import p1.A1;
import p2.A1;
このようなインポートは違法であり、コンパイル時エラーが発生します。