Respuesta

6

Si está dentro de su propia clase llamará al su método.
Si está fuera de su clase (e importa ambas clases) debe especificar qué clase usar.

Demostrar: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf $ 8 y $ 6.3 (ver comentarios)

+0

¿Puedes mostrar una referencia que indique que está garantizado por la norma para ser el caso? Podría ser dependiente del compilador ... – amit

+0

esperando que sm1 responda a amit – MozenRath

+2

según la especificación de lenguaje Java $ 8: el alcance (§6.3) de un miembro (§8.2) es el cuerpo completo de la declaración de la clase a la que pertenece el miembro pertenece. | Desde $ 6.3: El alcance de una declaración es la región del programa dentro del cual se puede hacer referencia a la entidad declarada mediante la declaración utilizando un nombre simple (siempre que sea visible (§6.3.1)). – Paranaix

5

Prueba esto:

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; 
    } 
} 

el resultado:

str 
123 

primero se ejecuta el método en el que la clase.

+2

¿puede mostrar una referencia que indique que está garantizado por el estándar para ser el caso? Podría ser compilador dependiente ... – amit

+1

+1 Me gusta la prueba. – Bohemian

Cuestiones relacionadas