ответ

6

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

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

+0

Вы можете показать ссылку, указывающую, что это гарантировано стандартом? Это может быть связано с компилятором ... – amit

+0

ждет sm1 ответить на amit – MozenRath

+2

Из спецификации языка Java $ 8: область действия (§6.3) члена (§8.2) - это весь текст объявления класса, к которому принадлежит член принадлежит. | От $ 6.3: область действия декларации - это область программы, в рамках которой сущность, объявленная декларацией, может ссылаться на простое имя (при условии, что оно является видимым (§6.3.1)). – Paranaix

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 

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

+2

, можете ли вы показать ссылку, указывающую, что это гарантировано стандартом? Это может быть связано с компилятором ... – amit

+1

+1 Мне нравится доказательство. – Bohemian

Смежные вопросы