Метод статического импорта перекрывается

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

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

2 ответа

Решение

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

Докажите: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf $ 8 и $6,3 (см. Комментарии)

Попробуй это:

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

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

Другие вопросы по тегам