8

クラス Long および Integer のメンバーの静的インポートを行っています。

import static java.lang.Integer.MAX_VALUE;
import static java.lang.Long.MAX_VALUE;

この変数 MAX_VALUE を使用して出力しようとすると、エラーが発生します。

import static java.lang.Integer.MAX_VALUE;
import static java.lang.Long.MAX_VALUE;

public class StaticImportDemo2 {
    public static void main(String[] args) {
        //Error :: The field MAX_VALUE is ambiguous 
        System.out.println("Print without static import Integer.MAX_VALUE "+MAX_VALUE);
    }
}

これで問題ありません。エラーを削除するには、このあいまいさを解決するために 1 つの静的インポートを削除する必要があります。

私が得ている主な問題は、*整数クラスの静的インポートでワイルドカードを使用すると、クラスがエラーなしでコンパイルされることです:

import static java.lang.System.out;
import static java.lang.Integer.*;
import static java.lang.Long.MAX_VALUE;

public class StaticImportDemo2 {
    public static void main(String[] args) {
        System.out.println("Print without static import Integer.MAX_VALUE " + MAX_VALUE);
    }
}

あいまいさはまだ存在する必要があります。これが問題なくコンパイルされるのはなぜですか?

4

1 に答える 1