метод статического импорта перекрывается - PullRequest
6 голосов
/ 02 января 2012

если у вас есть класс со статическим импортом в java.lang.Integer, а в моем классе также есть статический метод parseInt(String), то на какой метод будет ссылаться вызов parseInt("12345")?

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 02 января 2012

Если вы находитесь в своем собственном классе, он вызовет ваш метод.
Если вы находитесь вне своего класса (и импортируете оба класса), вы должны указать, какой класс использовать.

Доказательство: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf 8 долл. США и 6,3 долл. США (см. Комментарии)

5 голосов
/ 02 января 2012

Попробуйте:

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

метод в вашем классе выполняется первым.

...