2011-07-08 16 views
6

Tengo una pregunta sobre las importaciones de clase, parece que puede llamar a un método con una línea reducida si ha importado la clase. No entiendo cuál es el nombre de esta operación, y cómo es posible ...clase de importación de Java Sistema

Por ejemplo:

Por qué este código

public class test 
{ 
     public static void main (String args[]) 
     { 
       System.out.print("Test"); 
     } 
} 

puede ser reemplazado por

import static java.lang.System.out; 

public class test 
{ 
     public static void main (String args[]) 
     { 
       out.print("Test"); 
     } 
} 

¿Qué sucede si también tiene un objeto llamado "out"?

Gracias de antemano

+3

Se llaman importación estática.. (Obvio a partir de la declaración;)) Sun hace. no recomendar el uso sistemático de la importación estática para la claridad del código http://download.oracle.com/javase/1,5.0/docs/guide/language/static-import.html – VirtualTroll

+0

Gracias, debería estar más atento: D. existe en otros idiomas también? – MisterDoy

+0

Sí, hay otros idiomas que tienen conceptos similares – Kaj

Respuesta

3

Lo que pasa es que a partir de la clase externa debe hacer referencia por su nombre completo:

String out = "Hello World"; 
java.lang.System.out.println(out); 
+4

No, 'System.out.println (out);' hará en este caso. – Kaj

5

El cabo variables podrán remedar la importación estática y usted tendrá que usar el nombre completo para usar la función imprimir.

import static java.lang.System.out; 
public class Tester5 { 
    public static void main (String args[]) { 
    int out=0; 
    out.print("Test"); 
    } 
} 

produce la impresión "no puede invocarse (String) en int tipo primitivo se muestra el mismo error si fuera un objeto

Cuestiones relacionadas