6

静的インポートを持つクラスがjava.lang.Integerあり、私のクラスにも静的メソッドparseInt(String)がある場合、呼び出しはどのメ​​ソッドをparseInt("12345")指しますか?

前もって感謝します!

4

2 に答える 2

6

独自のクラス内にいる場合は、メソッドが呼び出されます
クラスの外にいる (そして両方のクラスをインポートする) 場合は、使用するクラスを指定する必要があります。

証明: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf $8 と $6.3 (コメントを参照)

于 2012-01-02T11:53:38.223 に答える
5

これを試して:

import static java.lang.Integer.parseInt;

public class Test {
    public static void main(String[] args) {
        System.out.println(parseInt("12345"));
    }

    private static int parseInt(String str) {
        System.out.println("str");
        return 123;
    }
}

結果:

str
123

クラスのメソッドが最初に実行されます。

于 2012-01-02T12:04:15.430 に答える